输出数据,动态sql

输出数据,动态sql,sql,plsql,Sql,Plsql,我对动态SQL有一些问题。 我创建了一个表,然后插入了一些数据,效果很好。 但我不知道如何显示数据。我的代码: declare begin execute immediate 'create table name(tabl_name varchar2(30),id number)'; execute immediate 'insert into name(tabl_name,id) (select ''something'',id from table3)'; commit; 现在我想显示名

我对动态SQL有一些问题。 我创建了一个表,然后插入了一些数据,效果很好。 但我不知道如何显示数据。我的代码:

declare
begin
execute immediate 'create table name(tabl_name varchar2(30),id number)';

execute immediate 'insert into name(tabl_name,id) (select ''something'',id from table3)';
commit;

现在我想显示名称表内容。怎么做?我应该在动态sql中使用游标吗?提前感谢。

您可以使用光标在记录中循环:

declare
    v_tabl_name varchar2(30);
    v_id number;
    res_cur SYS_REFCURSOR;
begin
    execute immediate 'create table name(tabl_name varchar2(30),id number)';
    execute immediate 'insert into name(tabl_name,id) (select ''something'',id from table3)';
    open res_cur for 'select tabl_name, id from name';

    LOOP
       FETCH res_cur INTO v_tabl_name, v_id;
       EXIT WHEN res_cur%NOTFOUND;
       dbms_output.put_line(v_tabl_name);
       dbms_output.put_line(v_id);
    END LOOP;

    close res_cur;

end;

你不能只做“从表名中选择*”?没有
子句,你不能在
PLSQL的匿名块中使用
select*…