Plsql developer 工具创建存储过程,必须要在package 文件下创建存储声明 pa

Plsql developer 工具创建存储过程,必须要在package 文件下创建存储声明 pa,第1张

是的!

给一个例子给你

CREATE OR REPLACE PACKAGE PKG_USER AS

TYPE DEPT_TYPE IS TABLE OF DEPT%ROWTYPE

PROCEDURE INSERTOPERATE(P_USERTYPE IN DEPT_TYPE)

END PKG_USER

SELECT S.OBJECT_NAME,S.STATUS FROM ALL_OBJECTS S WHERE S.OBJECT_NAME=UPPER('Pkg_User')

CREATE OR REPLACE PACKAGE BODY PKG_USER IS

PROCEDURE INSERTOPERATE(P_USERTYPE IN DEPT_TYPE) IS

BEGIN

SAVEPOINT AA

FOR I IN 1 .. P_USERTYPE.COUNT LOOP

INSERT INTO DEPT

(DEPTNO, DNAME, LOC)

VALUES

(P_USERTYPE(I).DEPTNO, P_USERTYPE(I).DNAME, P_USERTYPE(I).LOC)

END LOOP

COMMIT

EXCEPTION WHEN OTHERS THEN ROLLBACK TO AA

END INSERTOPERATE

END PKG_USER

--建立测试数据:

create table BOOK(编号 number(10),书名 varchar2(20),价格 varchar2(20))

insert into BOOK values(100,'aa','88.77')

select * from BOOK

--建立存储过程:

create or replace procedure query_BOOK(name IN OUT NUMBER,MY_BOOK OUT VARCHAR2,MY_BOOK2 OUT VARCHAR2) is

begin

select 编号 ,书名,价格 INTO name,MY_BOOK,MY_BOOK2 from BOOK where 编号=name

end query_BOOK

--调用存储过程:

declare v_name number(10)

v_my_book varchar2(50)

v_my_book2 varchar2(20)

begin

v_name := 100

query_BOOK(v_name,v_my_book,v_my_book2)--调用存储过程

dbms_output.put_line('v_name is: '||v_name)

dbms_output.put_line('v_my_book is: '||v_my_book)

dbms_output.put_line('v_my_book2 is: '||v_my_book2)

exception

when others then

dbms_output.put_line(sqlerrm)

end

ps:

plsql developer -->File-->new--->SQL window-->然后就可以在d出的空白窗口里写了.

存储过程写完后,是否有错,可以看plsql developer 的左边列表:

选"My objects"-->procedures-->展开-->看你对应的存储过程,如果存储过程前面有红色交叉,则表示存储过程有错.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11270908.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存