创建一个oracle 存储过程,输入一个表名可以在存储过程内部获取这个表的所有字段,并打印出来,
create or replace procedure aaaaaaaa(tableName in varchar2) 
is
  v_sql  varchar2(3000);
begin
  v_sql := 'select column_name from user_tab_columns where table_name='||''''||upper(tableName)||'''';
  execute immediate v_sql;
  dbms_output.put_line(v_sql);
end aaaaaaaa;
就是帮我把这个存储过程完善一下,要打印出所有字段名出来oracle存储sqltable

解决方案 »

  1.   

    create or replace procedure aaaaaaaa(tableName in varchar2) 
    is
      v_sql  varchar2(3000);
    begin
      v_sql := 'select wm_concat(column_name) from user_tab_columns where table_name='||''''||upper(tableName)||'''';
      execute immediate v_sql;
      dbms_output.put_line(v_sql);
    end aaaaaaaa;
      

  2.   

    呃,你打印的居然是v_sql……create or replace procedure aaaaaaaa(tableName in varchar2) 
    is
      v_sql  varchar2(3000);
      v_col_list varchar2(4000);
    begin
      v_sql := 'select wm_concat(column_name) from user_tab_columns where table_name='||''''||upper(tableName)||'''';
      execute immediate v_sql into v_col_list;
      dbms_output.put_line(v_col_list);
    end aaaaaaaa;