【发布时间】:2016-04-26 20:26:14
【问题描述】:
我是 PL/SQL 的新手,我正在努力解决以下问题。我找了 4 小时的答案,但仍然无法正常工作......
我在一个带有 SQL 语句的表中有超过 300 条记录,我的目标是编写一个能够在某些条件下循环它们的过程。 我还想检查哪些查询通过,哪些查询失败。
所以它是这样的(步骤/伪代码列表):
- 将条件作为参数的过程或函数
- 遍历匹配条件的记录
- 执行符合匹配的 SQL 语句
- 给出执行成功或失败的信息
我试图做这样的事情(如下),但我认为这是不正确的 - 因为我没有循环记录。
DECLARE
sql_stmt VARCHAR2(3000);
BEGIN
sql_stmt := 'SELECT testcase_sql
FROM data_audit_testcase_v2
WHERE testcase_desc LIKE ''Test 6 - EM%''';
dbms_output.put_line('Sth: ' || sql_stmt);
EXECUTE IMMEDIATE sql_stmt ;
END;
我正在考虑根据我的问题调整此代码:
FOR q IN (SELECT sql_text FROM query_table)
LOOP
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM (' || q.sql_text || ')'
INTO some_local_variable;
<<do something with the local variable>>
END LOOP;
你们觉得呢?
提前感谢您的帮助,
亚瑟
【问题讨论】: