在Pl SQL中,我通过选择其他表而不是获得结果来创建表。给我一些想法来解决这个问题。我的部分代码。
sqlstring :=q'[ create table sbs pll 8 nologging as
select /*+parallel(e,8)*/
e.* from event_t e
where
pid_id0 >= to_char(pin23.pin_convert.unix_to_rt_pid (pin23.pin_convert.string_to_unix_ts((trunc(sysdate)),'dd/mm/yy')))
and poid_type in ('/event/billing/payment/voucher') ]' ;
答案 0 :(得分:0)
您必须使用''
来逃避代码中使用的单引号答案 1 :(得分:0)
这是一个小测试用例,可以满足您的需求:
create table event_t
( event_id number
, pid_id0 number
, poid_type varchar2(100)
);
我创建了这个,因为我不知道你的event_t表的结构,除了我可以从你的代码中确定的。
然后在PL / SQL中,这有效:
declare
sqlstring varchar2(4000);
begin
sqlstring := q'[create table sbs parallel 8 nologging as
select /*+ parallel(e, 8) */
e.*
from event_t e
where pid_id0 >= 5
and poid_type in ('/event/billing/payment/voucher')]';
execute immediate sqlstring;
end;
然后,您可以从sbs。
中进行选择我不得不更改pid_id0谓词,因为我没有你的包。
希望这有帮助。