标签: oracle10g

如何在Linux上重新配置Oracle 10g xe

我在linux上的deb文件中安装了Oracle 10g xe,然后开始使用这个终端命令对其进行配置

sudo /etc/init.d/oracle-xe configure

但是在完成配置后我忘记了密码,所以当我使用上一个命令时,如何在重新安装后重新配置它

已配置Oracle数据库10g快捷版

谢谢,

linux oracle oracle10g

21
推荐指数
3
解决办法
4万
查看次数

Oracle中Drop和Drop Purge之间的区别

我正在使用Oracle数据库,我对Drop和Purge命令有点困惑.事实上,对我来说,两者都做同样的事情.从数据库中删除带有模式的表.这两者之间的主要区别是什么?

  1. Drop Table Tablename;
  2. Drop Table Tablename Purge;

sql oracle oracle10g

21
推荐指数
2
解决办法
6万
查看次数

Oracle Trigger ORA-04098:触发器无效且重新验证失败

我试图在oracle 10g数据库中创建一个简单的触发器.这个创建触发器的脚本运行干净.

CREATE OR REPLACE TRIGGER newAlert
AFTER INSERT OR UPDATE ON Alerts
  BEGIN
        INSERT INTO Users (userID, firstName, lastName, password) VALUES ('how', 'im', 'testing', 'this trigger')
  END;           
/
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时:

INSERT INTO Alerts(observationID, dateSent, message, dateViewed) VALUES (3, CURRENT_TIMESTAMP, 'Alert: You have exceeded the Max Threshold', NULL);
Run Code Online (Sandbox Code Playgroud)

要激活触发器,我收到以下错误消息:

ORA-04098:触发器'JMD.NEWALERT'无效且重新验证失败(受影响的0行)

我不明白什么导致这个错误.你知道导致这个错误的原因吗?或者为什么会这样?

先感谢您!

-大卫

sql oracle oracle10g ora-04098

21
推荐指数
2
解决办法
12万
查看次数

20
推荐指数
1
解决办法
7万
查看次数

Oracle会话和连接池之间的关系

让我先解释一下这个设置.

我们有一台运行在2GB RAM机器上的oracle服务器.Db实例的init参数"sessions"设置为160.

我们在Websphere 6.1上部署了该应用程序.连接池设置为Min 50和Max 150.

当我们在40个用户上运行Load test(并发,使用jMeter)时,一切都很顺利.但是当我们将concurent用户增加到Beyond 60时,Oracle会抛出异常,因为它不在会话中.

我们检查了应用程序是否有任何连接泄漏,但找不到任何连接泄漏.

那么它是否意味着40的并发性是这个设置可以采取的?增加Oracle会话/进程是获得更高并发性的唯一方法吗?

连接池中的数据库会话和连接到底有何关联?根据我的理解,连接不能超过会话,因此将Max Connection池设置为多于会话可能并不重要.那是对的吗 ?

oracle connection websphere oracle10g

20
推荐指数
2
解决办法
6万
查看次数

PL/SQL日志记录 - 如何控制?

我希望在我们现有的Oracle应用程序中引入一个日志框架来替换DBMS_OUTPUT的使用.

该框架将主要用于帮助调试,并将详细说明诸如启动x过程,参数细节,结束过程x等等.它还应具有为所有或仅一个程序单元,各种级别的跟踪打开的功能实际上什么是标准的日志记录功能.

实现这些要求应该相对简单,但是我希望您的帮助是如何最好地关闭此功能.我想要实现的是在关闭跟踪时可能遇到的最小性能.希望大多数时候都应该这样!

由于应用程序使用10g版本2,我最初喜欢在条件编译中包装日志记录机制的外观,以便在正常操作期间甚至看不到日志记录框架.不幸的是,我不得不勉强放弃这个想法,因为大多数应用程序是使用独立的程序和函数构建的,因此启用日志记录功能可能会使大量代码无效.

我已经看了几个现有的opensource和其他框架\功能的灵感:

log4plsql(http://log4plsql.sourceforge.net/)

APC 在这里的审查 特别是在可接受的影响下让我关注.

OraLog项目(http://oralog.sourceforge.net)

自2007年以来没有更新

PL/VISION(这里)

看起来很旧,自Oracle 8i以来没有变化?

问汤姆仪器(这里)

更新01/04/2014 Tom Kyte现在推荐Tyler Muth的Logger

如果您已经在Oracle应用程序中引入了某种形式的日志记录,如何实现它,特别是如何控制它,我真的很想听听您的经验.

oracle instrumentation plsql oracle10g

20
推荐指数
2
解决办法
3万
查看次数

创建一个返回表的Oracle函数

我正在尝试在包中创建一个返回表的函数.我希望在包中调用一次函数,但能够多次重复使用它的数据.虽然我知道我在Oracle中创建临时表,但我希望保持干燥.

到目前为止,这就是我所拥有的:

标题:

CREATE OR REPLACE PACKAGE TEST AS 

    TYPE MEASURE_RECORD IS RECORD (
      L4_ID VARCHAR2(50),
      L6_ID VARCHAR2(50),
      L8_ID VARCHAR2(50),
      YEAR NUMBER,
      PERIOD NUMBER,
      VALUE NUMBER
    );

    TYPE MEASURE_TABLE IS TABLE OF MEASURE_RECORD;

    FUNCTION GET_UPS(
      TIMESPAN_IN IN VARCHAR2 DEFAULT 'MONTLHY',
      STARTING_DATE_IN DATE,
      ENDING_DATE_IN DATE  
    ) RETURN MEASURE_TABLE;

END TEST;
Run Code Online (Sandbox Code Playgroud)

身体:

CREATE OR REPLACE PACKAGE BODY TEST AS 

  FUNCTION GET_UPS (
    TIMESPAN_IN IN VARCHAR2 DEFAULT 'MONTLHY',
    STARTING_DATE_IN DATE,
    ENDING_DATE_IN DATE
  ) RETURN MEASURE_TABLE IS

    T MEASURE_TABLE;

  BEGIN

        SELECT  ...
        INTO    T …
Run Code Online (Sandbox Code Playgroud)

plsql package oracle10g

20
推荐指数
2
解决办法
12万
查看次数

如何使用SQLPlus查看Oracle存储过程?

如何使用sqlplus for Oracle 10g查看存储过程的代码?

当我输入时:

desc daily_update; 
Run Code Online (Sandbox Code Playgroud)

它显示了参数,但是当我尝试执行以下操作时:

select * from all_source where name = 'daily_update';
Run Code Online (Sandbox Code Playgroud)

我明白了

没有选择任何行

我究竟做错了什么?

oracle stored-procedures sqlplus oracle10g

20
推荐指数
1
解决办法
12万
查看次数

JDBC批量插入异常处理

我每次执行程序时都在执行JDBC批量插入(一次插入大约1000行).但是我无法正确处理某些记录引发的异常.

假设,1000条记录中的第100条记录因为数据无效或某些值的大小超出列大小而抛出异常.一旦发生异常,其余的记录就不会被插入,程序就会失败.

我想要的是即使第100条记录抛出异常,其余的插入也应该在我的程序结束之前照常进行.

我无法理解如何实现这一目标.请建议.

编辑:

这是我在我的应用程序中用于批量插入的示例代码.假设结果集有大约1000条记录.

PreparedStatement ps = null;
while(rs.next()){
  //Retrieve the value and set it to a Prepared statement

  String name = rs.getString("Name");
  int age = rs.getInt("Age");
  ps.setInt(1, age);
  ps.setString(2, name);

  //Finally invoke addBatch
  ps.addBatch();
}

//Finally call the executeBatch method
ps.executeBatch();
Run Code Online (Sandbox Code Playgroud)

如果第100条记录抛出异常,那么我想仅从第100条第1000条记录触发该进程.是否有某种方式来做到这一点,这样我可以重新开始从中抛出异常的记录过程中直到再次结束了吗?怎么做到这一点?

java sql oracle jdbc oracle10g

20
推荐指数
2
解决办法
2万
查看次数

如何从返回引用游标的Oracle过程中获得格式良好的结果?

在MS SQL Server中,如果我想检查存储过程的结果,我可能会在Management Studio中执行以下操作.

--SQL SERVER WAY
exec sp_GetQuestions('OMG Ponies')
Run Code Online (Sandbox Code Playgroud)

结果窗格中的输出可能如下所示.

ID    Title                                             ViewCount   Votes 
----- ------------------------------------------------- ---------- --------
2165  Indexed View vs Indexes on Table                  491         2  
5068  SQL Server equivalent to Oracle’s NULLS FIRST     524         3 
1261  Benefits Of Using SQL Ordinal Position Notation?  377         2 

(3 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

无需编写循环或PRINT语句.

要在Oracle中执行相同的操作,我可能会在SQL Developer中执行以下匿名块

--ORACLE WAY
    DECLARE
        OUTPUT  MYPACKAGE.refcur_question;
        R_OUTPUT MYPACKAGE.r_question;
        USER    VARCHAR2(20);

BEGIN

  dbms_output.enable(10000000);
  USER:= 'OMG Ponies';
  recordCount := 0;



  MYPACKAGE.GETQUESTIONS(p_OUTPUT => OUTPUT, 
  p_USER=> USER, 

  ) ;




  DBMS_OUTPUT.PUT_LINE('ID | …
Run Code Online (Sandbox Code Playgroud)

oracle oracle10g oracle-sqldeveloper

19
推荐指数
1
解决办法
2万
查看次数