【发布时间】:2018-04-22 13:30:20
【问题描述】:
我有一个运行良好的主光标。
declare
v_firm_id number;
amount number;
v_total_sum TABLE_TEMP.TOTAL_SUM%TYPE;
CURSOR MT_CURSOR IS
SELECT firm_id FROM t_firm;
BEGIN
OPEN MT_CURSOR;
LOOP
FETCH MT_CURSOR INTO v_firm_id;
EXIT WHEN MT_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(to_char(sysdate, 'mi:ss') ||'--- '|| v_firm_id)
INSERT INTO TABLE_TEMP(TOTAL_SUM) VALUES(v_firm_id)
COMMIT;
END LOOP;
DBMS_LOCK.SLEEP(20);
BEGIN
FOR loop_emp IN
(SELECT TOTAL_SUM INTO v_total_sum FROM TABLE_TEMP)
LOOP
dbms_output.put_line(to_char(sysdate, 'mi:ss') ||'--- '|| v_total_sum || '-TEST--');
END LOOP loop_emp;
END;
end;
除了dbms_output.put_line(v_total_sum || '---');之外一切正常
我在那里没有得到任何数据。我得到正确的行数。它插入的。
【问题讨论】:
-
TABLE_TEMP 是全局临时表吗?如果是,它的保留设置是什么?
-
标准问题 -
dbms_output是否启用?你能通过调试器运行它,看看它在做什么吗?此外,问题标题显示“未找到数据” - 这与dbms_output问题有何关系?数据是否存在于表的末尾? -
@APC
TABLE_TEMP是我在运行此过程之前已经创建的实际表。 -
那么,它的保留设置是什么?
-
@WilliamRobertson 是的,它已启用,因为我已经在相同的代码中通过执行 ` DBMS_OUTPUT.PUT_LINE(to_char(sysdate, 'mi:ss') ||'--- '|| v_firm_id 对其进行了测试)`
标签: oracle stored-procedures plsql cursor implicit