我需要验证几个表中的数据。本质上,我想为下面的语句写一个循环,包含给定表中的所有字段。
sql> select fld1, count(*)
from table1
group by fld1
;
我认为我需要创建至少2个变量。将提示第一个变量提供表名。
第二个var将基于以下结果:
select column_name from user_tab_col_statistics where table_name = table_variable
我是否还要创建临时表并选择进入该表?
答案 0 :(得分:0)
根据我的理解,您可以将值存储在临时表中。
1.取表名称&列名放在Variable Var_Table_name,Var_Col
中select Var_Col, count(*) into Var1,Var2 from Var_Table group by fld1 ;
表示所有表格列。您可以创建临时表并插入如下所述的值并存储在临时表中。
1.Var_Table_name
2.Var_Col
3.Var1
4.Var2
答案 1 :(得分:0)
PL / SQL不提示。另一方面,SQL * Plus将提示替换变量。请参阅以下示例。
MPOWEL01> @stack
MPOWEL01>
MPOWEL01> select table_name, column_name from user_tab_col_statistics where table_name = upper('&tbl_nm')
2 order by column_name;
Enter value for tbl_nm: marktest
old 1: select table_name, column_name from user_tab_col_statistics where table_name = upper('&tbl_nm')
new 1: select table_name, column_name from user_tab_col_statistics where table_name = upper('marktest')
TABLE_NAME COLUMN_NAME
------------------------------ ------------------------------
MARKTEST FLD1
MARKTEST FLD2
MARKTEST FLD3
MARKTEST FLD4
MPOWEL01>
set verify off
将从输出中消除替换消息行。
在PL / SQL中,您需要SELECT INTO变量或使用游标。
我认为你可能只能使用SQL来生成你想要运行的SELECT语句,但你究竟是什么意思通过'验证数据'?验证如何?用什么标准?