如何where在Oracle 9i 的条件中使用计算列 ?
我想用类似的东西
select decode (:pValue,1,
select sysdate from dual,
select activation_date from account where AcNo = 1234) as calDate
where caldate between startDate and endDate;
Run Code Online (Sandbox Code Playgroud) 我正在使用Oracle 9i,我想在PL/SQL中使用continue语句或其等价物.那么在oracle 9i中是否有任何名为"continue"的关键字.如果没有,请让我知道解决方案.
我想做这样的事情:
create table NEW_TABLE (select * from OLD_TABLE where id=3582)
Run Code Online (Sandbox Code Playgroud)
并从该select语句的结果列创建一个新表.
我打赌它可能在mySQL中,但如何在Oracle中做到这一点?
我很确定这真的很傻.
而不是花费另外10分钟(或更好的说,而我花了10分钟),我会在这里同时问它.
以下陈述有什么问题:
select to_date( '30/10/2009 18:27:35', 'DD/MM/YYY HH24:MI:SS') from dual
Run Code Online (Sandbox Code Playgroud)
错误消息是:
Error: ORA-01861: literal does not match format string
SQLState: 22008
ErrorCode: 1861
Position: 0
Run Code Online (Sandbox Code Playgroud) 外连接在我看来有点令人困惑.
有没有人可以让我清楚地了解外连接(右,左和全)?
我想要一个Completion_Status列的特定订单,如:
完成,通过,不完整和失败
我该如何订购?我想定义上面的顺序.
我试过CASE,但是它给了我一个错误,就像期待NUM不是CHAR一样.
select DISTINCT
u.first_name || ' ' || u.last_name "Employee_Name",
rco.title "Course_Name",
decode(p.status,'P','Passed', 'F','Failed', 'C','Completed', 'I','Incomplete', 'Not Attempted') "Completion_Status",
to_char(p.completed_date,'YYYY-MM-DD') "Date_Completed"
from
offering o, offering_enrollment oe, users u , performance p, offering_content_object c, content_object rco
where
o.id = oe.offering_id and
u.id = oe.user_id and
o.content_object_id = c.id AND
p.content_object_id = c.source_id and
p.content_object_id = rco.id AND
p.user_id(+) = u.id and
u.id in ( select id
from users
where manager_id = $user.id$)
AND
p.content_object_id NOT IN (41453457, 130020319, …Run Code Online (Sandbox Code Playgroud) 有一种方法可以使用oracle jdbc和Java指定IBatis查询超时吗?
谢谢
我有以下两个版本的ANSI兼容SQL(列/表名称已更改以保护机密数据),其中一个版本通过遵循正确的逻辑而另一个不符合我的要求来满足我的要求.
1)ANSI Join 1-Works
SELECT b.COLUMN_A,
COUNT(a.COLUMN_A)
FROM TABLE1 a
RIGHT OUTER JOIN
(SELECT COLUMN_A FROM TABLE2 WHERE COLUMN_X='TEST') b
ON a.COLUMN_A = b.COLUMN_A
AND a.COLUMN_B in (SELECT FROM TABLE3 WHERE COLUMN_Y=5) --WORKS
GROUP BY b.COLUMN_A
Run Code Online (Sandbox Code Playgroud)
1)给出如下输出:
COLUMN_A COUNT(COLUMN_A)
--------------------------
A 0
B 0
C 1
D 1
E 0
Run Code Online (Sandbox Code Playgroud)
2)ANSI Join 2 - 不起作用
SELECT b.COLUMN_A,
COUNT(a.COLUMN_A)
FROM TABLE1 a
RIGHT OUTER JOIN
(SELECT COLUMN_A FROM TABLE2 WHERE COLUMN_X='TEST') b
ON a.COLUMN_A = b.COLUMN_A
WHERE
a.COLUMN_B in (SELECT FROM …Run Code Online (Sandbox Code Playgroud) 是否可以在不重新读取和重写整个内容的情况下将文本附加到oracle 9i clob?
我试过这个:
PreparedStatement stmt = cnt.prepareStatement(
"select OUT from QRTZ_JOBEXEC where EXEC_ID=? "
+ "for update",
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
try {
stmt.setLong(1, id);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
Clob clob = rs.getClob(1);
long len = clob.length();
Writer writer = clob.setCharacterStream(len+1);
try {
PrintWriter out = new PrintWriter(writer);
out.println(line);
out.close();
} finally {
writer.close();
}
rs.updateClob(1, clob);
rs.updateRow();
}
rs.close();
} finally {
stmt.close();
}
Run Code Online (Sandbox Code Playgroud)
但是我在调用setCharacterStream时遇到"不支持的功能"异常.
以下过程(在Oracle 11g第1版中)接受sql作为参数并返回其返回码.
如果成功则返回0
如果没有更新或没有执行删除,则返回1
如果失败,返回实际的错误代码.
如何更改以下程序以返回另一个参数说"return_message",其中包含oracle内部错误消息的简短描述?如果成功,它应该说"成功",如果没有执行删除/更新,它应该说"nochange"
CREATE OR REPLACE PROCEDURE "demo"."run_demo"(v_sql IN VARCHAR2, return_code OUT number)
AS
i number;
BEGIN
return_code := 0;
execute immediate v_sql;
i := sql%rowcount;
IF (i<1)
THEN return_code := 1;
END IF;
EXCEPTION
WHEN OTHERS THEN
return_code := SQLCODE;
END;
Run Code Online (Sandbox Code Playgroud)