sql - 如何处理 Oracle PL/SQL 中的 into 错误问题?
问题描述
这是我的代码
begin
open vcursor;
loop
fetch vcursor into v1, v2, v3, v4;
exit when vcursor%notfound;
dbms_output.PUT_LINE('hello');
insert into tblproject
select seq_tblproject.nextval, t5.SUBJECTNAME || 'project', T3.SUBJECTEND, t1.TEAMSEQ
into v1, v2, v3, v4
from tblteam t1
inner join TBLCLASS t2 on t1.CLASSSEQ = t2.CLASSSEQ
inner join TBLOPENCOURSE T on T.OPENCOURSESEQ = t2.OPENCOURSESEQ
inner join TBLOPENSUBJECT T3 on T.OPENCOURSESEQ = T3.OPENCOURSESEQ
inner join TBLAVAILABLESUBJECT T4 on T4.AVAILABLESUBJECTSEQ = T3.AVAILABLESUBJECTSEQ
inner join TBLSUBJECT T5 on T5.SUBJECTSEQ = t4.SUBJECTSEQ
where (v1, v2) in (
select distinct t5.SUBJECTSEQ, t1.TEAMNAME
from tblteam t1
inner join TBLCLASS t2 on t1.CLASSSEQ = t2.CLASSSEQ
inner join TBLOPENCOURSE T on T.OPENCOURSESEQ = t2.OPENCOURSESEQ
inner join TBLOPENSUBJECT T3 on T.OPENCOURSESEQ = T3.OPENCOURSESEQ
inner join TBLAVAILABLESUBJECT T4 on T4.AVAILABLESUBJECTSEQ = T3.AVAILABLESUBJECTSEQ
inner join TBLSUBJECT T5 on T5.SUBJECTSEQ = t4.SUBJECTSEQ);
-- dbms_output.PUT_LINE(a || ',' || b|| ',' ||c|| ',' ||d);
dbms_output.PUT_LINE(v1);
dbms_output.PUT_LINE(v2);
dbms_output.PUT_LINE(v3);
dbms_output.PUT_LINE(v4);
end loop;
end;
我想用 dbms 输出进行调试。
[65000][6550]
ORA-06550: line 23, column 9:
PL/SQL: ORA-01744:
inappropriate INTO ORA-06550: line 21, column 9:
PL/SQL: SQL Statement ignored
出现这样的错误。
已确认将 4 个值放入 insert into 与其他代码一起正常工作。但这令人沮丧,因为它现在在此代码中不起作用。
我应该如何解决这个问题?Oracle 版本是 11.g。
此致
此致
解决方案
您有一个SELECT INTO
语句和 inINSERT
语句混淆了,这导致了这个错误。开头的声明
insert into tblproject
并在这里结束
inner join TBLSUBJECT T5 on T5.SUBJECTSEQ = t4.SUBJECTSEQ);
是插入语句。删除线into v1, v2, v3, v4
,它会工作。您不能SELECT INTO
在插入语句的中间执行 a 。因此错误ORA-01744: inappropriate INTO
推荐阅读
- symfony - symfony 4 json_login JWT 401 凭证错误
- python - SQLAlchemy Bakery -Function 需要一定的数组大小
- c++ - 在 C++ 中运行时更改操作
- java - 我可以将列表作为参数传递给 Scala/Java 中以这种方式定义的方法 detectFormatAutomatically(delimitersForDetection:Char*)
- python - 尝试在 Python 中构建一个简单的计算器无法在数学符号之间进行迭代
- google-cloud-firestore - Firestore 安全规则 - 通配符集合名称?
- javascript - 如何在下拉列表中获取除隐藏和提交按钮之外的所有表单字段
- groovy - Groovy AST 方法调用表达式的目标方法未设置
- sql-server - 根据该行中的值填充行
- javascript - 需要优雅的方式从 Javascript 中的 json 映射中提取值作为字符串