Welcome 微信登录

首页 / 数据库 / MySQL / Oracle和MSSQL中循环的使用

1、Oracle
  1. CREATE OR REPLACE FUNCTION SETSTATE(OLDVALUE VARCHAR2, POS NUMBER, SVALUE VARCHAR2)  
  2. RETURN VARCHAR2  
  3. IS  
  4. RETURN_VALUE VARCHAR2 (20);  
  5. LEN NUMBER(8);  
  6. I NUMBER(8);  
  7. TEMP_VALUE VARCHAR2(1);  
  8. BEGIN  
  9.      LEN := LENGTH(OLDVALUE);  
  10.      IF POS > LEN THEN  
  11.         RETURN "指定的索引大于字符串的长度!";  
  12.      END IF;  
  13.      I := 0;  
  14.      RETURN_VALUE := "";  
  15.      FOR I IN 1..LEN LOOP  
  16.          TEMP_VALUE := SUBSTR(OLDVALUE, I, 1);  
  17.          IF I = POS THEN  
  18.             TEMP_VALUE := SVALUE;  
  19.          END IF;  
  20.          RETURN_VALUE := RETURN_VALUE || TEMP_VALUE;  
  21.      END LOOP;  
  22.      RETURN RETURN_VALUE;  
  23. END;  
2、MSSQL
  1. IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = "SETSTATE")  
  2.  DROP FUNCTION SETSTATE  
  3. GO  
  4. CREATE FUNCTION SETSTATE(@OLDVALUE NVARCHAR(20), @POS INT, @SVALUE NVARCHAR(1))  
  5. RETURNS NVARCHAR(20)  
  6. AS  
  7. BEGIN  
  8.  DECLARE @RETURN_VALUE NVARCHAR(20),  
  9.  @LENGTH INT,  
  10.  @I INT,  
  11.  @TEMP_VALUE NVARCHAR(1);  
  12.  SET @LENGTH = LEN(@OLDVALUE);  
  13.  SET @I = 1;  
  14.  SET @RETURN_VALUE = "";  
  15.  IF(@POS > @LENGTH)  
  16.   SET @RETURN_VALUE = @OLDVALUE;  
  17.  ELSE  
  18.   BEGIN  
  19.    WHILE(@I <= @LENGTH)  
  20.    BEGIN  
  21.     SET @TEMP_VALUE = SUBSTRING(@OLDVALUE, @I, 1);  
  22.     IF (@I = @POS)  
  23.      SET @TEMP_VALUE = @SVALUE;  
  24.     SET @RETURN_VALUE = @RETURN_VALUE + @TEMP_VALUE;  
  25.     SET @I = @I + 1;  
  26.    END  
  27.   END  
  28.  RETURN @RETURN_VALUE;  
  29. END  
  30. GO  
重装Oracle 11g EM控制台MySQL 去除字段中的换行和回车符相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数