oracleʵÏÖ°ó¶¨in×Ö·û´®
1.½¨Á¢´æ·Å×Ö·û´®µÄÊý×éÀàÐÍ
create or replace type Type_bind as table OF VARCHAR2(4000)
2.½¨Á¢½«×Ö·û´®×ª³ÉÊý×éÈ»ºó·µ»Ø¸øType_bindº¯Êý¡£
CREATE OR REPLACE FUNCTION F_PUB_BIND_IN(p_bind IN VARCHAR2)
RETURN TYPE_BIND AS
/*
´´½¨Ê±¼ä:2008-8-26
ÔËÐÐÖÜÆÚ:
Éæ¼°µÄ±í:
º¯Êý¼òÊö:
ΪÁË´øINµÄÌõ¼þ,ʹÓð󶨱äÁ¿, °Ñ×Ö·û´®×ª³É±íÀàÐÍ
Èë²ÎΪ()ÖеÄÖµ,Èç:(1,2,3,4)Ôò´«Èë'1,2,3,4'
SELECT * from TABLE(F_PUB_BIND('66561000,62693920')) Ò²¿Éµ÷ÓÃ
ÐÞ¸ÄÀú³Ì:
1.
*/
--ÍùÈë²ÎµÄºóÃæ¼ÓÈ붺ºÅ,±ãÓÚ·Ö¸î
v_SqlStr LONG DEFAULT p_bind || ',';
--Öмä±äÁ¿
v_Tmp NUMBER;
--·Ö¸îºóµÄÖµ
v_Data TYPE_BIND := TYPE_BIND();
BEGIN
LOOP
v_Tmp := INSTR(v_SqlStr, ',');
EXIT WHEN(NVL(v_Tmp, 0) = 0);
--À©Õ¹Êý×é´óС
v_Data.EXTEND;
/* dbms_output.put_line(v_Data.COUNT);*/
v_Data(v_Data.COUNT) := to_number(SUBSTR(v_SqlStr, 1, v_Tmp - 1));
v_SqlStr := SUBSTR(v_SqlStr, v_Tmp + 1);
END LOOP;
RETURN v_Data;
END F_PUB_BIND_IN;
3.ʵÏְ󶨵ÄÓï·¨¡£
UPDATE DW.TASK_SMS_LIST P
SET P.STATE = 'X'
WHERE P.SMS_SEQ_ID in
(select COLUMN_VALUE
from the(select cast(F_PUB_BIND_IN(V_SMS_SEQ_ID) as type_bind)
from dual));
V_SMS_SEQ_ID Èç'1,2,3,4..'¸ñʽ
Ïà¹ØÎĵµ£º
1¡¢´´½¨±í£º
create table stud(
sid int,
sname varchar2(50)
)
²¢²åÈëÒ»ÌõÊý¾Ý
&n ......
Ò» ǰÌá
Ï£Íû×îеļͼÔÚ¿ªÍ·¸øÄãµÄ±í½¨Á¢²éѯ£º
񡜧mytable
²éѯ£ºcreate or replace view as mytable_view from mytable order by id desc ÆäÖУ¬×îºÃʹÓÃÐòÁкÅcreate sequence mytable_sequence À´×Ô¶¯Ôö¼ÓÄãµÄ¼ ......
ÏîÄ¿ÖÐÓÐÉæ¼°´æ´¢¹ý³Ì¶Ô×Ö·û´®µÄ´¦Àí£¬ËùÒԾͽ«ÔÚÍøÉϲéÕÒµ½µÄ×ÊÁÏ»ã×Ü£¬×öÒ»¸öÐÅϢƴ½ÓʽµÄ×ܽᡣ
ÒÔÏÂÐÅÏ¢¾ùÀ´×Ô»¥ÁªÍø£¬Ìù³öÀ´Ò»Ôò×Ô¼º±£´æÒÔ´ýÒÔºóʹÓã¬Ò»Ôò¹©´ó¼Ò·ÖÏí¡£
×Ö·ûº¯Êý——·µ»Ø×Ö·ûÖµ
ÕâЩº¯ÊýÈ«¶¼½ÓÊÕµÄÊÇ×Ö·û×åÀàÐ͵IJÎÊý(CHR³ýÍâ)²¢ÇÒ·µ»Ø×Ö·ûÖµ.
³ýÁËÌØ±ð˵Ã÷µÄÖ®Íâ,ÕâЩº¯Êý´ó²¿·Ö·µ» ......
ORACLEÈÕÆÚʱ¼äº¯Êý´óÈ«
TO_DATE¸ñʽ(ÒÔʱ¼ä:2007-11-02 13:45:25ΪÀý)
Year:
yy two digits Á½Î»Äê   ......