2016-12-03 3 views
-1

私が最初に..SELECT COUNT(*)PL/SQL変数から

は、ROWNUMの= 1

は、私は、このTABLE_NAMEを割り当てるALL_TABLESからテーブル名をつかむPLSQLブロックを書いしようとしています変数に変換する。

この表の行数を数え、画面に印刷します。

私は以下のコードを貼り付けました。私は持っているようにSQL文を使用して変数を参照することはできますか?

DECLARE 
TABLE_HOLDER VARCHAR2(200); 
COUNT_OF_ROWS NUMBER; 

BEGIN 

SELECT TABLE_NAME INTO TABLE_HOLDER FROM ALL_TABLES 
WHERE OWNER ='ROB1' AND ROWNUM=1; 
DBMS_OUTPUT.PUT_LINE(TABLE_HOLDER); 

SELECT COUNT(*) INTO COUNT_OF_ROWS FROM TABLE_HOLDER; 
DBMS_OUTPUT.PUT_LINE(COUNT_OF_ROWS); 
END; 

ありがとうございます。

答えて

0

私はあなたがdynamic SQL機能が必要だと思います。

0

テーブルにある行の数を示すall_tablesにnum_rowsという列があります。

DECLARE 
cursor table_rows is select table_name, num_rows from all_tables 
where owner='ROB1' and NUM_ROWS>1; 

t_name varchar2(100); 
row_number number(30); 

BEGIN 

for i in table_rows loop 
dbms_output.put_line('table '||i.table_name || ' has' ||i.num_rows||' rows'); 
end loop; 
end; 
+0

残念ながら、データベース内のビューに対しても同じプロセスを実行する必要があり、データディクショナリのビューに行カウント属性はありません。 – RobR