在Pl SQL中如何通过选择其他表来创建表

时间:2012-11-28 12:50:48

标签: sql oracle plsql

在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') ]' ;

2 个答案:

答案 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谓词,因为我没有你的包。

希望这有帮助。