oracle - 选择临时表时出现 Oracle 错误
问题描述
我的最终目标远比这复杂,但这是导致我的错误的简化版本。我想将一些行放入一个临时表(实际上是几个临时表,但我无法通过这第一个障碍)。这是我的 PL/SQL;
DECLARE
type L1_store is table of MyTable%rowtype;
L1 L1_store;
BEGIN
select
* bulk collect
into L1
from MyTable
WHERE 1=1
and length(MyColumn1) = 2;
select
L1.MyColumn1
,L1.MyColumn2
from L1;
END;
这是我得到的错误;
ORA-06550: line 19, column 6:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 16, column 1:
PL/SQL: SQL Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
行号可能不正确,因为为了清楚起见,我编辑了实际的 PL/SQL
****编辑****
好的,所以我最初接受了下面提供的答案,因为它看起来回答了我的问题,并且我可以看到如何使用它。但是,为了清楚起见,这是我的最终目标,以防有比我脑海中更好的答案。
如果我只是在 SQL 中执行此操作,我会执行以下操作;
with L1 as
(select * from table),
L2 as
(select * from anothertable)
select L1.Column
from L1
left join L2 on L1.somecolumn = L2.somecolumn
我不知道这是否有帮助或阻碍,但感谢大家期待您继续耐心等待。
解决方案
这里的问题似乎是块中的第二个选择。如果您尝试从记录中选择数据,我倾向于将其放入 FOR 循环中。即,像这样:
for i in 1 .. L1.count() LOOP
dbms_output.put_line (L1(i).MyColumn1);
end loop;
您可以将 MYColumn1 的值分配给变量或以其他方式使用它。
推荐阅读
- r - 使用R弹性包在弹性中搜索关键字列表
- python - TensorFlow CNN 得到错误 - 没有属性 Droupout
- windows - 仅当 GOARCH=386 时,无法在 ntdll.dll 中找到 RtlCopyMemory 过程
- c++ - 使用 std::getline() 读取单行?
- angular - 使用地图角度的管道可观察订阅
- java - 来自字符串的瞬间数组
- java - 如何跟踪程序中当前用户的用户名?
- r - xaringan 中的 Mathjax 和 markdown 语法冲突
- r - 如何在 R 中为多项式 SVM 模拟数据
- python - 让两个函数以不同的“采样”时间定期运行