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
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
二零零九年十月二十日,打从三年前推出Oracle加紧计划以来,甲骨文公司已经增加了七,000多家治理软件中型企业客户,当前中型企业客户总量已经超过25,000家。
透过推出马向中型企业客户的Oracle加快计划新功能,包括新式加快计划解决方案、Oracle企业加速器、财务选件和调度步骤等,甲骨文在不停兑现顺利。
面临中型 ......
1.数据库独立性
将应用从数据库A 移植到数据库B 时,我时常遇到这种问题:应用在数据库A 上原本无懈可击,到了
数据库B 上却不能工作,或者表现得很离奇。看到这种情况,我们的第一个想法往往是,数据库B 是一个
“不好的”数据库。而真正的原因其实是数据库B 的工作方式完全不同。没有哪个数据库是错的 ......
Oracle 3 个主要的内存结构:
系统全局区(System Global Area,SGA):这是一个很大的共享内存段,几乎所有Oracle
进程都要访问这个区中的某一点。
进程全局区(Process Global Area,PGA):这是一个进程或线程专用的内存,其他进程/
线程不能访问。
用户全局区(User Global Area,UGA):这个内存区与 ......
sqlplus的配置文件为login.sql,通常如下所示创建该文件:
set serveroutput on size 1000000
set trimspool on --滤除spool输出的空白
set linesize 200 --用于设定每行显示的宽度
set pagesize 9999 --设置显示的页数
set sqlprompt '_user @ _connect_identifier> '
将该文件复制到Oracle安装目录C ......