显示由用户PL SQL过程创建的所有表

时间:2017-11-17 18:17:33

标签: database oracle plsql

我正在尝试创建一个显示指定用户创建的所有表的过程。以下是我到目前为止的情况:

CREATE OR REPLACE PROCEDURE user_tables
@username VARCHAR(50),
@result  varchar(100000)  OUTPUT
AS
BEGIN    
   -- Execution section 
   Set result = SELECT * FROM ALL_TABLES WHERE OWNER = @username;


EXCEPTION    
  -- Exception section 
     WHEN no_data_found THEN 
      dbms_output.put_line('User does not exist'); 
   WHEN others THEN 
      dbms_output.put_line('Error!'); 


END; 

我想知道这是否是正确的道路,以及我应该如何完成这项任务

1 个答案:

答案 0 :(得分:0)

这是一个提示

BEGIN
    FOR tn IN (SELECT table_name FROM all_tables /*WHERE owner = vc_User_Name*/)
    LOOP
        -- Display some stuff
        DBMS_OUTPUT.PUT_LINE(tn.table_name);
    END LOOP;
END;
/