oracle变量不能用作查询,标记变量并在查询oracle中使用它们

variable

不支持日期或时间戳。最后的查询也应该使用

:my_date

my_date

如果目标是使用在上一步中填充的变量来填充表,那么可以使用PL/SQL来完成整个任务,例如。

declare

myDate date;

begin

select some_col into myDate from wherever;

insert into target_table (col1, col2, col2)

select x, y, z

from source_table

where business_date = myDate;

end;

declare

my_date timestamp;

results sys_refcursor;

begin

select systimestamp into my_date

from dual;

open results for

select my_date as my_date from dual;

dbms_sql.return_result(results);

end;

/

PL/SQL procedure successfully completed.

ResultSet #1

MY_DATE

---------------------------------------------------------------------------

20-JUN-20 10.02.29.130000000

1 row selected.

对于早期的Oracle版本,您仍然需要在SQL*Plus中将ref cursor声明为主机变量:

set autoprint on

var results refcursor

declare

my_date timestamp;

begin

select systimestamp into my_date

from dual;

open :results for

select my_date as my_date from dual;

end;

/

(或

set autoprint off

然后

print results

明确地说。)

但是我不懂Java,所以我不知道上面的任何一种方法在您的环境中是否有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值