【发布时间】:2021-12-29 07:27:06
【问题描述】:
告诉我如何通过输入参数从包中组织所需过程的调用。我的代码示例,含义清楚,我将附上。我真的需要帮助来完成这项任务。在输入时,我们收到一行,根据该行的文本,我们使用包内的必要程序,删除、清除或复制表。 提前感谢您的帮助!
create table test1
(
test1 varchar2(10),
valtest number(5)
);
insert into test1 values('hello',0110);
insert into test1 values('bye',1010);
CREATE OR REPLACE PACKAGE pck as
TYPE refc IS REF CURSOR;
PROCEDURE p1
( intake varchar2,
rc IN OUT refc
);
PROCEDURE p2 (
intake varchar2,
rc IN OUT refc
);
PROCEDURE p3 (
intake varchar2,
rc IN OUT refc
);
end;
create or replace package body pck as
PROCEDURE pr1 (
intake varchar2(10),
rc IN OUT mrc
)
IS
BEGIN
OPEN rc FOR SELECT * FROM test1;
IF rc IN ('delt')
THEN DROP TABLE test1;
dbms_output.put_line ('table droped!');
END IF;
END;
PROCEDURE pr2 (
intake varchar2(10),
rc IN OUT mrc
)
BEGIN
OPEN rc FOR SELECT * FROM test1;
IF rc IN ('trunct')
THEN TRUNCATE TABLE test1;
dbms_output.put_line ('table truncated!');
END IF;
END;
PROCEDURE pr3 (
intake varchar2(10),
rc IN OUT mrc
)
IS
BEGIN
OPEN rc FOR SELECT * FROM test1;
IF rc IN ('copy')
THEN CREATE TABLE test2 AS SELECT * FROM test1;
dbms_output.put_line ('table copyed!');
END IF;
END;
end;
【问题讨论】:
标签: sql oracle package oracle-sqldeveloper