标签: oracle10g

什么可能导致间歇性ORA-12519(TNS:找不到合适的处理程序)错误

我们在Oracle 10数据库前面对着Weblogic 9运行我们的Junit 4测试套件(使用Hudson作为持续集成服务器),偶尔我们会在脚本拆解时遇到ORA-12519崩溃.但是,错误是非常间歇性的:

  • 它通常发生在同一个Test类中
  • 对于相同的测试用例(有时它们通过)并不总是会发生
  • 对于相同数量的测试用例(从3-9开始)不会发生这种情况
  • 有时根本不会发生,一切都过去了

虽然我无法保证这不会在本地发生(当然,当针对相同的数据库运行时),我已经多次运行相同的类套件而没有任何问题.

有任何想法吗?

oracle junit oracle10g ora-12519

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

如果语句在select(ORACLE)

嗨,我只是选择并且工作得很好:

select 'CARAT Issue Open' issue_comment, i.issue_id, i.issue_status, i.issue_title, i.ISSUE_summary ,i.issue_description, i.severity,
gcrs.Area_name, gcrs.sector_name,

substr(gcrs.stream_name,1,case when instr(gcrs.stream_name,' (')=0 then 100 else instr(gcrs.stream_name,' (')-1 end) ISSUE_DIVISION,

case when gcrs.STREAM_NAME like 'NON-GT%' THEN 'NON-GT' ELSE gcrs.STREAM_NAME END as ISSUE_DIVISION_2


from table(f_carat_issues_as_of('31/MAR/2013')) i
inner join v_gcrs_with_stream gcrs on i.segment_id = gcrs.segment_id

where UPPER(ISSUE_STATUS) like '%OPEN%'
Run Code Online (Sandbox Code Playgroud)

现在我想调用两列:ISSUE_DIVISION和ISSUE_DIVISION_2

如果它们在新列中相等则应为值1,如果不相等则应为0,

我该怎么做 ?


我的完整代码:

select 'CARAT Issue Open' issue_comment, i.issue_id, i.issue_status, i.issue_title, i.ISSUE_summary ,i.issue_description, i.severity,
gcrs.Area_name, gcrs.sector_name,

substr(gcrs.stream_name,1,case when instr(gcrs.stream_name,' (')=0 then 100 else instr(gcrs.stream_name,' (')-1 end) …
Run Code Online (Sandbox Code Playgroud)

sql oracle select if-statement oracle10g

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

如何让Oracle SQL Developer关闭数据库连接?

有没有办法让Oracle SQL Developer不关闭我的数据库连接,或者增加超时?有时在长时间运行的查询期间,SQL Dev将关闭连接,让我的查询在服务器上运行,但我没有结果.如果我RDP进入服务器并在本地运行SQL Dev,它似乎永远不会有这个问题.

oracle oracle10g oracle-sqldeveloper

36
推荐指数
5
解决办法
7万
查看次数

Oracle - 为什么转换为TO_CHAR时数字的前导零消失

在Oracle中,当将具有前导零的数字转换为字符时,为什么前导数字会消失?这个逻辑是Oracle特定的,还是特定于SQL?

例:

SELECT TO_CHAR(0.56) FROM DUAL;
/* Result = .56 */
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle10g

36
推荐指数
4
解决办法
9万
查看次数

在存储过程中执行立即保持不足的权限错误

以下是存储过程的定义:

CREATE OR REPLACE PROCEDURE usp_dropTable(schema VARCHAR, tblToDrop VARCHAR) IS
BEGIN
  DECLARE v_cnt NUMBER;
  BEGIN
    SELECT COUNT(*) 
      INTO v_cnt 
      FROM all_tables 
     WHERE owner = schema
       AND table_name = tblToDrop;

     IF v_cnt > 0 THEN 
        EXECUTE IMMEDIATE('DROP TABLE someschema.some_table PURGE');
     END IF;
   END;
END;
Run Code Online (Sandbox Code Playgroud)

这是电话:

CALL usp_dropTable('SOMESCHEMA', 'SOME_TABLE');
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我继续为EXECUTE IMMEDIATE命令获得不足的权限错误.我在线查看并发现权限不足的错误通常意味着oracle用户帐户没有对通过的查询中使用的命令的权限,在这种情况下是DROP.但是,我有权限.我真的很困惑,我似乎无法找到适合我的解决方案.

提前谢谢你.

解:

正如史蒂夫在下面提到的,Oracle安全模型很奇怪,因为它需要在程序的某个地方明确地知道要使用哪种特权.让Oracle知道的方法是在CREATE OR REPLACE语句中使用AUTHID关键字.如果您想要与过程的创建者具有相同级别的权限,则使用AUTHID DEFINER.如果希望Oracle使用当前运行存储过程的用户的权限,则需要使用AUTHID CURRENT_USER.程序声明如下:

CREATE OR REPLACE PROCEDURE usp_dropTable(schema VARCHAR, tblToDrop VARCHAR) 
AUTHID CURRENT_USER IS
BEGIN
  DECLARE v_cnt NUMBER;
  BEGIN
    SELECT COUNT(*) 
      INTO v_cnt 
      FROM all_tables 
     WHERE owner …
Run Code Online (Sandbox Code Playgroud)

sql privileges stored-procedures oracle10g

35
推荐指数
3
解决办法
11万
查看次数

如何清除Oracle中的所有缓存项

我在Oracle数据库上调优SQL查询.我想确保在运行每个查询之前清除所有缓存的项目,以防止误导性能结果.我通过运行以下命令清除共享池(以摆脱缓存的SQL /解释计划)和缓冲区缓存(以摆脱缓存的数据):

alter system flush buffer_cache;
alter system flush shared_pool;
Run Code Online (Sandbox Code Playgroud)

还有更多我应该做的,还是这个足够?

谢谢!

sql oracle caching oracle10g

35
推荐指数
1
解决办法
8万
查看次数

检查Oracle中的"它是否为数字"功能

我正在尝试检查oracle(10g)查询中的列中的值是否为数字以便进行比较.就像是:

select case when ( is_number(myTable.id) and (myTable.id >0) ) 
            then 'Is a number greater than 0' 
            else 'it is not a number' 
       end as valuetype  
  from table myTable
Run Code Online (Sandbox Code Playgroud)

关于如何检查的任何想法?

oracle plsql oracle10g

35
推荐指数
5
解决办法
18万
查看次数

我如何清除oracle执行计划缓存以进行基准测试?

在oracle 10gr2上,我有几个sql查询我正在比较性能,但是在第一次运行之后,v $ sql表存储了用于缓存的执行计划,因此对于其中一个查询,我从第一次运行的28秒开始到.5秒后.

我试过了

ALTER SYSTEM FLUSH BUFFER_CACHE; - 运行此操作后,查询始终以5秒运行,我不相信这是准确的.

想到可能从缓存中删除行项本身:从v $ sql中删除其中sql_text就像'select*from ....但是得到一个关于无法从视图中删除的错误.

sql oracle10g

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

ORA-01861:文字与格式字符串不匹配

当我尝试执行此代码段时:

cmd.CommandText = "SELECT alarm_id,definition_description,element_id,
    TO_CHAR (alarm_datetime, 'YYYY-MM-DD HH24:MI:SS'),severity,
    problem_text,status FROM aircom.alarms 
    WHERE status = 1 and 
    TO_DATE (alarm_datetime,'DD.MM.YYYY HH24:MI:SS') > TO_DATE ('07.09.2008 
    09:43:00', 'DD.MM.YYYY HH24:MI:SS') 
    order 
    by ALARM_DATETIME desc";
Run Code Online (Sandbox Code Playgroud)

我明白了:

ORA-01861: literal does not match format string
Run Code Online (Sandbox Code Playgroud)

数据库连接没有问题,因为我可以执行基本的SQL命令.

这个陈述有什么问题?

sql oracle oracle10g ora-01861

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

Oracle DB:java.sql.SQLException:已关闭连接

java.sql.SQLException的原因:来自Oracle的封闭连接?

java.sql.SQLException:oracle.jdbc.driver.DatabaseError上的oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)处的oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)处的已关闭连接.throwSqlException(DatabaseError.java:208)位于oracle.jdbc.OracleConnectionWrapper.com的oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1131)(OracleConnectionWrapper.java:117)

我们从故障转移数据库连接中收到此错误.我们也为其他数据库使用相同的代码.但只与其中一个数据库一起看这个问题.这是因为由于长时间不活动而连接可能会超时,我们正在尝试使用它吗?如果您需要更多详细信息,请告诉我们......

AbandonedConnectionTimeout设置为15分钟InactivityTimeout设置为30分钟

java sql jdbc oracle10g

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