Oracle 表行数验证plsql
我试图验证两个表的行计数,但它会抛出一个错误,比如缺少关键字Oracle 表行数验证plsql,oracle,plsql,Oracle,Plsql,我试图验证两个表的行计数,但它会抛出一个错误,比如缺少关键字 Declare source_count number := 0; target_count number := 0; BEGIN EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO source_count FROM TABLE1'; EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO target_count FROM TABLE2'; IF source_coun
Declare
source_count number := 0;
target_count number := 0;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO source_count FROM TABLE1';
EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO target_count FROM TABLE2';
IF source_count = target_count THEN
DBMS_OUTPUT.PUT_LINE('Copied Count matched with Table1 and TABLE2');
ELSE
DBMS_OUTPUT.PUT_LINE('Count mismatch');
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('error '||sqlerrm);
END;
/
在
executeimmediate
中的字符串外部使用,甚至不要使用executeimmediate
SELECT COUNT(*) INTO source_count FROM TABLE1;
SELECT COUNT(*) INTO target_count FROM TABLE2;
如果需要执行立即执行
,请使用以下命令:
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM TABLE1' INTO source_count;
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM TABLE2' INTO target_count;
在
executeimmediate
中的字符串外部使用,甚至不要使用executeimmediate
SELECT COUNT(*) INTO source_count FROM TABLE1;
SELECT COUNT(*) INTO target_count FROM TABLE2;
如果需要执行立即执行
,请使用以下命令:
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM TABLE1' INTO source_count;
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM TABLE2' INTO target_count;
谢谢现在,如果您的表在编译时已知,则跳过“立即执行”部分。只需将SELECT COUNT(*)运行到表1中的source_COUNT中;谢谢现在,如果您的表在编译时已知,则跳过“立即执行”部分。只需将SELECT COUNT(*)运行到表1中的source_COUNT中;如果这是您的一部分,请记住,在PL/SQL中,您可以在任何DML操作(如插入)后立即捕获
SQL%rowcount
,因此您不需要计算表中插入的行数。如果这是您的一部分,请记住在PL/SQL中,您可以在任何DML操作(如插入)后立即捕获sql%rowcount
,因此无需计算表中插入的行数。