Õâ¸ösqlÔõôд£¿ - Oracle / ¿ª·¢
ÓÐ a1 b1 c1Èý¶Îsql´úÂëºÍÒ»¸ö±äÁ¿data_date£¬µ±data_date='01'ʱ£¬Ö´ÐÐa1ÕâÒ»¶Î´úÂë,µ±data_date='02'ʱ£¬Ö´ÐÐb1ÕâÒ»¶Î´úÂ룬µ±data_date='03'ʱ£¬Ö´ÐÐc1ÕâÒ»¶Î´úÂë,Õâ¸ösqlÔõôд£¿
SQL code:
CASE data_date
WHEN '1'
THEN EXECUTE IMMEDIATE a1;
WHEN '2'
THEN EXECUTE IMMEDIATE b1;
ELSE EXECUTE IMMEDIATE c1;
END CASE;
create or replace procedure proc1
(a1 in varchar2,
b1 in varchar2,
c1 in varchar2,
data_date in varchar2
) is
begin
if data_date is null then
dbms_output.put_line('Error parameter: no value for data_date');
elsif data_date = '01' then
execute immediate a1;
elsif data_date = '02' then
execute immediate b1;
elsif data_date = '03' then
execute immediate c1;
else
dbms_output.put_line('Error parameter: value for data_date is not in (''01'',''02'',''03'')');
end if;
end;
¶¯Ì¬Æ´½ÓºÃsql È»ºóÅÐ¶Ï Ö´ÐÐ
SQL code:
CREATE OR REPLACE PROCEDURE test_proc(v_data_date varchar2)
AS
sql1 VARCHAR2(200);
sql2 VARCHAR2(200);
sql3 VARCHAR2(200);
BEGIN
sql1 := 'SELECT emp, sal, depton from em
Ïà¹ØÎÊ´ð£º
ÎÒÊÇÓÃÔ¶³Ì×ÀÃæÁ¬²Ù×÷·þÎñÆ÷ÉϵÄÊý¾Ý¿â¡£
ÔÚ´´½¨Ò»¸öÓû§Ö®ºó£¬ÔÙÓÃPLSQLµÇ¼£¬ÔòPLSQLËÀµôÁË¡£
ÎҹصôPLSQLÖ®ºó£¬ÓÃÆäËûÓû§Ò²²»ÄܵǼ¡£
ÎÒ°ÑoracleµÄ·þÎñÍ£Ö¹£¬½á¹û¾ÍÊÇoracleµÄ·þÎñ״̬¾ÍÍ£ÁôÔÚ¡°Í ......
¸÷λ´ó¸ç£¬°ï¸öæ¡£
ϸöOracle for vista °æ±¾µÄ°²×°ÊÔÊÔ
10GºÍ11GµÄ
http://www.oracle.com/technology/software/products/database/index.html
------------------------------------------- ......
--½¨Á¢Ò»¸ö°üÒÔ¶¨ÒåÒ»¸öÓαê
create or replace package PK_test
as
type cur_test is ref cursor;
end PK_test;
--½¨Á¢Ò»¸ö¹ý³Ì,ͨ¹ýÊäÈëJOBID£¬·µ»ØÒ»¸ö±í¼Ç¼£¨Óα꣩!
create or replace ......