【发布时间】:2017-08-16 18:54:30
【问题描述】:
我在论坛上看过,但目前这个问题没有答案。基本上,我试图在我的过程中创建一个视图,因为它比似乎不起作用的复杂选择语句更容易,因为它返回的“ORA-01422 精确提取返回的行数超过了请求的行数”。我已经把语句底部供参考
但是,视图选项似乎不起作用,它返回另一个错误“在预期以下情况之一时遇到符号“CREATE”:”。是不是我做错了什么?
感谢观看。
procedure proRekt (par_id number) is
vardec farm.parcel.description%type;
vland farm.landuse.landuse_id%type;
v_luse farm.landuse.landuse%type;
varpl farm.parcel.parcel_id%type;
begin
create or replace view Door as
select a.parcel_id,a.description,b.landuse_id,c.landuse
from
farm.parcel a,
farm.parcel_landuse b,
farm.landuse c
where a.parcel_id = b.parcel_id
and b.landuse_id = c.landuse_id;
select parcel_id,description,landuse
into varpl,
vardec,
vland
from door
where parcel_id = parID;
**** 错误的选择语句
select a.parcel_id,c.description,a.landuse_id,b.landuse
into varpl,
vardec,
vland,
v_luse
from farm.parcel_landuse a,
farm.landuse b,
farm.parcel c
where c.parcel_id = parID
and a.landuse_id = b.landuse_id
and a.parcel_id = c.parcel_id;
【问题讨论】:
-
不是 oracle 用户,但 select into structure 是错误的... select
into from
还是要插入多个表?
它的pl/sql所以需要选择与sql有点不同的变量。我明白了.. 这应该寻找 varTNo 变量吗?如果你想创建视图那为什么要通过存储过程创建呢?您可以通过存储过程直接创建视图并从中选择数据。CREATE VIEW是 SQL 命令而不是 PL/SQL 命令。如果你需要在 PL/SQL 中使用它,你必须使用EXECUTE IMMEDIATE。但是根据您正在做的事情,SQL 似乎就可以了。