OracleºÍMSSQLÖÐÑ»·µÄʹÓÃ
ORACLE
CREATE OR REPLACE FUNCTION SETSTATE(OLDVALUE VARCHAR2, POS NUMBER, SVALUE VARCHAR2)
RETURN VARCHAR2
IS
RETURN_VALUE VARCHAR2 (20);
LEN NUMBER(8);
I NUMBER(8);
TEMP_VALUE VARCHAR2(1);
BEGIN
LEN := LENGTH(OLDVALUE);
IF POS > LEN THEN
RETURN 'Ö¸¶¨µÄË÷Òý´óÓÚ×Ö·û´®µÄ³¤¶È£¡';
END IF;
I := 0;
RETURN_VALUE := '';
FOR I IN 1..LEN LOOP
TEMP_VALUE := SUBSTR(OLDVALUE, I, 1);
IF I = POS THEN
TEMP_VALUE := SVALUE;
END IF;
RETURN_VALUE := RETURN_VALUE || TEMP_VALUE;
END LOOP;
RETURN RETURN_VALUE;
END;
MSSQL
IF EXISTS(SELECT * from SYSOBJECTS WHERE NAME = 'SETSTATE')
DROP FUNCTION SETSTATE
GO
CREATE FUNCTION SETSTATE(@OLDVALUE NVARCHAR(20), @POS INT, @SVALUE NVARCHAR(1))
RETURNS NVARCHAR(20)
AS
BEGIN
DECLARE @RETURN_VALUE NVARCHAR(20),
@LENGTH INT,
@I INT,
@TEMP_VALUE NVARCHAR(1);
SET @LENGTH = LEN(@OLDVALUE);
SET @I = 1;
SET @RETURN_VALUE = '';
IF(@POS > @LENGTH)
SET @RETURN_VALUE = @OLDVALUE;
ELSE
BEGIN
WHILE(@I <= @LENGTH)
BEGIN
SET @TEMP_VALUE = SUBSTRING(@OLDVALUE, @I, 1);
IF (@I = @POS)
SET @TEMP_VALUE = @SVALUE;
SET @RETURN_VALUE = @RETURN_VALUE + @TEMP_VALUE;
SET @I = @I + 1;
END
END
RETURN @RETURN_VALUE;
END
GO
Ïà¹ØÎĵµ£º
1.Êý¾Ý¿â¶ÀÁ¢ÐÔ
½«Ó¦ÓôÓÊý¾Ý¿âA ÒÆÖ²µ½Êý¾Ý¿âB ʱ£¬ÎÒʱ³£Óöµ½ÕâÖÖÎÊÌ⣺ӦÓÃÔÚÊý¾Ý¿âA ÉÏÔ±¾ÎÞи¿É»÷£¬µ½ÁË
Êý¾Ý¿âB ÉÏÈ´²»Äܹ¤×÷£¬»òÕß±íÏֵúÜÀëÆæ¡£¿´µ½ÕâÖÖÇé¿ö£¬ÎÒÃǵĵÚÒ»¸öÏë·¨ÍùÍùÊÇ£¬Êý¾Ý¿âB ÊÇÒ»¸ö
“²»ºÃµÄ”Êý¾Ý¿â¡£¶øÕæÕýµÄÔÒòÆäʵÊÇÊý¾Ý¿âB µÄ¹¤×÷·½Ê½ÍêÈ«²»Í¬¡£Ã»ÓÐÄĸöÊý¾Ý¿âÊÇ´íµÄ ......
ÏÖÔÚÓÐÒÔÏÂÁ½ÕÅ±í£º
±íA ......
1.Oracle ʵÀýÖ÷ÒªÓÐ3 Àà½ø³Ì
Oracle Öеĸ÷¸ö½ø³ÌÒªÍê³Éij¸öÌØ¶¨µÄÈÎÎñ»òÒ»×éÈÎÎñ£¬Ã¿¸ö½ø³Ì¶¼»á·ÖÅäÄÚ²¿Äڴ棨PGA Äڴ棩À´
Íê³ÉËüµÄÈÎÎñ¡£Oracle ʵÀýÖ÷ÒªÓÐ3 Àà½ø³Ì£º
·þÎñÆ÷½ø³Ì£¨server process£©£ºÕâЩ½ø³Ì¸ù¾Ý¿Í»§µÄÇëÇóÀ´Íê³É¹¤×÷¡£ÎÒÃÇÒѾ¶ÔרÓ÷þ
ÎñÆ÷ºÍ¹²Ïí·þÎñÆ÷ÓÐÁËÒ»¶¨µÄÁ˽⡣ËüÃǾÍÊÇ·þÎñÆ÷½ø³Ì¡£
º ......
Oracle´´½¨±íʱ£¬³£Óöµ½ÏÈɾ³ýºó´´½¨µÄÇé¿ö£¬¶øËüÓÖûÓÐdrop table... if existsÓï·¨¡£Îª´Ë¿ÉÒÔʹÓÃuser_objectsÊý¾Ý×ÖµäºÍ¶¯Ì¬sqlÓï¾äʵÏÖÀàËÆµÄ¹¦ÄÜ£¬ÈçÏÂËùʾ£º
create or replace procedure proc_dropifexists(
p_table in varchar2
) is
v_count number(10);
begin
&nbs ......