Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

i meet a problem when create table in a for loop

1028624Jul 27 2013 — edited Jul 28 2013

procedure table_init(param1_ varchar2) creates a table named param1_

create or replace

procedure table_init(param1_ varchar2) authid current_user   as

t_name varchar2(100):=param1_;

begin

execute immediate

' create table ' || t_name || '

(

日期 date not null,

代码 varchar2(20) not null,

最新 number,

换手率 number,

总额 number,

今开 number,

最高 number,

最低 number,

市盈率 varchar2(20),

市销率 varchar2(20),

委买价 number,

委卖价 number,

内盘 number,

外盘 number,

均价 number,

委比 number,

委差 number,

成交笔数 number,

成交方向 varchar2(20),

市净率 number,

总市值 number,

流通市值 number

) '

;

end table_init;

it passed test by code bellow

declare

xx varchar2(40);

begin

xx:='nihao';

table_init(xx);

table_init('zhongguo');

table_init('xiaopengyou');

end;

but when i use table_init() in the for loop bellow,  problem rises...

declare

cursor stock is select * from "股票";

rec stock%rowtype;

tmp varchar2(100);

begin

for rec in stock loop

tmp:=rec."表名";

dbms_output.put_line(tmp);

table_init(tmp);

end loop;

end;

why? how can i create mutiple  tables whose name are stored in another table?

This post has been answered by 1028624 on Jul 28 2013
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 25 2013
Added on Jul 27 2013
8 comments
774 views