我们在Oracle 10数据库前面对着Weblogic 9运行我们的Junit 4测试套件(使用Hudson作为持续集成服务器),偶尔我们会在脚本拆解时遇到ORA-12519崩溃.但是,错误是非常间歇性的:
虽然我无法保证这不会在本地发生(当然,当针对相同的数据库运行时),我已经多次运行相同的类套件而没有任何问题.
有任何想法吗?
嗨,我只是选择并且工作得很好:
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) 有没有办法让Oracle SQL Developer不关闭我的数据库连接,或者增加超时?有时在长时间运行的查询期间,SQL Dev将关闭连接,让我的查询在服务器上运行,但我没有结果.如果我RDP进入服务器并在本地运行SQL Dev,它似乎永远不会有这个问题.
在Oracle中,当将具有前导零的数字转换为字符时,为什么前导数字会消失?这个逻辑是Oracle特定的,还是特定于SQL?
例:
SELECT TO_CHAR(0.56) FROM DUAL;
/* Result = .56 */
Run Code Online (Sandbox Code Playgroud) 以下是存储过程的定义:
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) 我在Oracle数据库上调优SQL查询.我想确保在运行每个查询之前清除所有缓存的项目,以防止误导性能结果.我通过运行以下命令清除共享池(以摆脱缓存的SQL /解释计划)和缓冲区缓存(以摆脱缓存的数据):
alter system flush buffer_cache;
alter system flush shared_pool;
Run Code Online (Sandbox Code Playgroud)
还有更多我应该做的,还是这个足够?
谢谢!
我正在尝试检查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 10gr2上,我有几个sql查询我正在比较性能,但是在第一次运行之后,v $ sql表存储了用于缓存的执行计划,因此对于其中一个查询,我从第一次运行的28秒开始到.5秒后.
我试过了
ALTER SYSTEM FLUSH BUFFER_CACHE; - 运行此操作后,查询始终以5秒运行,我不相信这是准确的.
想到可能从缓存中删除行项本身:从v $ sql中删除其中sql_text就像'select*from ....但是得到一个关于无法从视图中删除的错误.
当我尝试执行此代码段时:
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命令.
这个陈述有什么问题?
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分钟