存储 过程 就是作为可执行对象存放在数据库 的一个或多个SQL命令。 定义总是很抽象。 存储 过程 其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库 的(这里我们只谈SQL Server)。如果我们通过创建 存储 过程 以及在ASP 调用 存储 过程 ,就可以避免将SQL语句同ASP代码混杂在一起。这样做的好处至少有三个: 第一、大大提高效率。 存储 过程 本身的执行速度非常快,而且,调用 存储 过程 可以大大减少同数据库的交互次数。 第二、提高安全性。假如将SQL语句混合在ASP代码 ,一旦代码失密,同时也就意味着库结构失密。 第三、有利于SQL语句的重用。 oracle 存储 过程 的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储 过程 名字 参数1 IN NUMBER, 参数2 IN NUMBER 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储 过程 名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量 ,可以同时将多个列 存储 多个变量 ,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END ; 3. IF 判断 IF V_TEST=1 THEN BEGIN do something END ; END IF ; 4.while 循环 WHILE V_TEST=1 LOOP BEGIN END ; END LOOP;
condition1和condition2是布尔表达式,其值为真或假。 statements1、statements2、statements3是PL/SQL语句。 条件逻辑的流程如下: 如果condition1为真,就执行sta
含义解释:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下: 代码如下: IF 条件=值1 THEN    RETURN(翻译值1)ELS IF 条件=值2 THEN    RETURN(翻译值2)    ……ELS IF 条件=值n THEN    RETURN(翻译值n)ELSE    RETURN(缺省值) END IF decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多 使用 方法:1、比较大小
1:不管 过程 有没有编译成功,但是这个 过程 总是会生成的,你可以看到他们打小红叉了(如果有错,编译不成功);pl/sql 程序块其实是匿名的,而 过程 是有命名的,这样它可以存在数据库里面!因而他们的语法是一样,Pl/sql的意思是可编程的SQL,是对SQL的扩展! create or replace procedure test_p is begin if 1=2 then &nbs...
b:='asdf'; if length(a)>length(b) then dbms_output.put_line('字符串"'||a||'"的长度比字符串"'||b||'"的长度大');
ORA-01406错误通常是由于查询结果 存在空值,而 Oracle 不允许将空值转换为非空值的数据类型,例如数字或日期。解决此问题的方法是 使用 NVL函数或COALESCE函数将空值替换为默认值,或者 使用 CASE语句根据情况返回不同的值。例如: ```sql SELECT COALESCE(column1, 'N/A'), NVL(column2, 0), CASE WHEN column3 IS NULL THEN 'Unknown' ELSE column3 END FROM my_table; 此查询将在查询结果 将任何空值替换为默认值,以避免ORA-01406错误。