创建 pl/sql 过程以从不同的表中获取不同的列
creating pl/sql procedure to get different columns from different tables
我正在尝试创建一个过程来从不同表的不同列中获取数据。我已经编写了这段代码,但出现错误 PLS-00103:遇到符号 "DECLARE" 时期望其中之一
下列:
begin function package pragma procedure subtype 类型使用
形式
当前光标外部语言
符号 "begin" 被替换为 "DECLARE" 以继续。任何人都可以
create or replace procedure List_of_mfi
(
cq out sys_refcursor
)
as
begin
open cq for SELECT a.mfi_name,
b.mfi_type_name,
c.mfi_tier_name,
d.mfi_state_name,
e.mfi_district_name,
a.mfi_phone_no
FROM mfi_master a,
mfi_type_master b,mfi_tier_new c,mfi_state_master d,mfi_district_master e
WHERE a.mfi_type_id = b.mfi_type_id(+)
and a.mfi_tier_id = c.mfi_tier_id(+)
and a.mfi_state_id = d.mfi_state_id(+)
and a.MFI_DISTRICT_ID=e.MFI_DISTRICT_ID(+);
end;
declare
cq sys_refcursor;
mfi_name varchar2(150);
mfi_type_name varchar2(150);
mfi_tier_name varchar2(150);
mfi_state_name varchar2(150);
mfi_district_name varchar2(150);
mfi_phone_no varchar2(150);
--SELECT a.mfi_name, b.mfi_type_name, c.mfi_tier_name, d.mfi_state_name,e.mfi_district_name, a.mfi_phone_no
begin
List_of_mfi(cq);
loop
fetch cq into mfi_name,mfi_type_name,mfi_tier_name,mfi_state_name,mfi_district_name,mfi_phone_no;
EXIT WHEN cq%NOTFOUND;
--print
dbms_output.put_line('mfi_name:'||mfi_name);
dbms_output.put_line('mfi_type_name:'||mfi_type_name);
dbms_output.put_line('mfi_tier_name:'||mfi_tier_name);
dbms_output.put_line('mfi_state_name:'||mfi_state_name);
dbms_output.put_line('mfi_district_name:'||mfi_district_name);
dbms_output.put_line('mfi_phone_no:'||mfi_phone_no);
end loop;
end;
由于我是初学者,我不知道这段代码是否正确。我想了解如何编辑它并使用 oracle 报告使其工作 builder.Thanks 每个人。
end;
declare
您必须在 END
关键字后加上斜杠 "/" 以终止 procedure 块,然后再执行另一个PL/SQL 匿名块.
在每个 END 后加上“/”:
END;
/
我正在尝试创建一个过程来从不同表的不同列中获取数据。我已经编写了这段代码,但出现错误 PLS-00103:遇到符号 "DECLARE" 时期望其中之一 下列: begin function package pragma procedure subtype 类型使用 形式 当前光标外部语言 符号 "begin" 被替换为 "DECLARE" 以继续。任何人都可以
create or replace procedure List_of_mfi
(
cq out sys_refcursor
)
as
begin
open cq for SELECT a.mfi_name,
b.mfi_type_name,
c.mfi_tier_name,
d.mfi_state_name,
e.mfi_district_name,
a.mfi_phone_no
FROM mfi_master a,
mfi_type_master b,mfi_tier_new c,mfi_state_master d,mfi_district_master e
WHERE a.mfi_type_id = b.mfi_type_id(+)
and a.mfi_tier_id = c.mfi_tier_id(+)
and a.mfi_state_id = d.mfi_state_id(+)
and a.MFI_DISTRICT_ID=e.MFI_DISTRICT_ID(+);
end;
declare
cq sys_refcursor;
mfi_name varchar2(150);
mfi_type_name varchar2(150);
mfi_tier_name varchar2(150);
mfi_state_name varchar2(150);
mfi_district_name varchar2(150);
mfi_phone_no varchar2(150);
--SELECT a.mfi_name, b.mfi_type_name, c.mfi_tier_name, d.mfi_state_name,e.mfi_district_name, a.mfi_phone_no
begin
List_of_mfi(cq);
loop
fetch cq into mfi_name,mfi_type_name,mfi_tier_name,mfi_state_name,mfi_district_name,mfi_phone_no;
EXIT WHEN cq%NOTFOUND;
--print
dbms_output.put_line('mfi_name:'||mfi_name);
dbms_output.put_line('mfi_type_name:'||mfi_type_name);
dbms_output.put_line('mfi_tier_name:'||mfi_tier_name);
dbms_output.put_line('mfi_state_name:'||mfi_state_name);
dbms_output.put_line('mfi_district_name:'||mfi_district_name);
dbms_output.put_line('mfi_phone_no:'||mfi_phone_no);
end loop;
end;
由于我是初学者,我不知道这段代码是否正确。我想了解如何编辑它并使用 oracle 报告使其工作 builder.Thanks 每个人。
end; declare
您必须在 END
关键字后加上斜杠 "/" 以终止 procedure 块,然后再执行另一个PL/SQL 匿名块.
在每个 END 后加上“/”:
END;
/