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
,因此无需计算表中插入的行数。