--建表
CREATE TABLE PkMgr (
TableName varchar2(50 byte),
ColumnName varchar2(50 byte),
PkValue integer
);
--存储过程
create or replace procedure GetPkId(TbName in varchar2,ClName in varchar2,PkId out INTEGER ) is
begin
update pkmgr set PkValue=PkValue+1 where tablename=TbName and columnname=ClName;
select pkvalue into PkId from pkmgr where tablename=TbName and columnname=ClName;
commit;
end GetPkId;
我在sqlplus和pl sql中怎样调用这个存储过程呢?怎样把out的字段给传出来打印出来!
CREATE TABLE PkMgr (
TableName varchar2(50 byte),
ColumnName varchar2(50 byte),
PkValue integer
);
--存储过程
create or replace procedure GetPkId(TbName in varchar2,ClName in varchar2,PkId out INTEGER ) is
begin
update pkmgr set PkValue=PkValue+1 where tablename=TbName and columnname=ClName;
select pkvalue into PkId from pkmgr where tablename=TbName and columnname=ClName;
commit;
end GetPkId;
我在sqlplus和pl sql中怎样调用这个存储过程呢?怎样把out的字段给传出来打印出来!
1: 我在sqlplus和pl sql中怎样调用这个存储过程呢?
EXEC PROCEDURE_NAME;2: 怎样把out的字段给传出来打印出来
DBMS_OUTPUT.PUT_LINE...
PL SQL Dev有一个查看OutPut窗口.
for c in (select * from PkMgr)
loop
DBMS_OUTPUT.PUT_LINE('OutPut:'||c.PkValue);
end loop;
Integer可以用函数,to_char()转换成字符.
declare
MyPkID PkMgr.PkID%type;
begin
GetPkId(table_name,column_name,MyPkID);
DBMS_OUTPUT.PUT_LINE('OutPut:'||to_char(MyPkID));
end;
V_OUTPUT NUMBER;
BEGIN
GETPKID(&TABLE_NAME,&COLUMN_NAME,V_OUTPUT);
DBMS_OUTPUT.PUT_LINE('OUT PUT PKID VALUE IS: '||V_OUTPUT);
END;