0

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

2 回答 2

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

希望这可以帮助。

于 2012-11-28T16:28:20.410 回答
0

您必须使用''转义代码中使用的单引号

于 2012-11-28T13:35:53.737 回答