易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle 存储过程简述

存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。
       定义总是很抽象。存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server)。如果我们通过创
建存储过程以及在ASP中调用存储过程,就可以避免将SQL语句同ASP代码混杂在一起。这样做的好处至少有三个: 网管网bitsCN.com
    * 第一、大大提高效率。存储过程本身的执行速度非常快,而且,调用存储过程可以大大减少同数据库的交互次数。
    * 第二、提高安全性。假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密。
    * 第三、有利于SQL语句的重用。
oracle 存储过程的基本语法
1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
    参数1 IN NUMBER,
    参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN
54com.cn
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
XXXX
END;
END LOOP;
5.变量赋值
V_TEST := 123;
6.用for in 使用cursor
...
IS
CURSOR cur IS SELECT * from xxx;
BEGIN
FOR cur_result in cur LOOP
   BEGIN
    V_SUM :=cur_result.列名1+cur_result.列名2
   END;
END LOOP;
END;
7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME from USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP 54ne.com
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
    do something
END LOOP;
CLOSE C_USER;
8.用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试
关于oracle存储过程的


相关文档:

设置Oracle提示符

在$ORACLE_HOME/sqlplus/admin/login.sql (或者是glogin.sql)中添加:
set termout off   
  COLUMN prompter new_value m_prompt     
  select host_name || ':' || instance_name ||' >'  prompter       
  from sys.v_$insta ......

oracle优化 缓存对象与数据

author:skate
time:2010/03/16
当系统出现性能瓶颈时,尽量较少不必要的资源消耗,最后就是平衡cpu,内存,io,network等资源,使数据库
可以稳定的运行。
oracle数据库优化的根本是
1.尽量减少资源消耗,例如优化sql,减少sql本身的资源消耗
2.如果无法进一步减少资源的消耗,那就让数据尽量靠近cpu,也就是把数据 ......

ORACLE类似split函数的功能

 SELECT ID,
       col_name,
       SUBSTR(col_name, 1, INSTR(col_name || ',', ',', 1, 1) - 1) C1,
       SUBSTR(col_name,
              ......

oracle按时间查询翻页时出现与前面一页重复数据

用hibernate查询分页时,翻页显示中有少量记录是重复的。已经确认sql写法没错误。
select savebillin0_.*,entityacct2_.*
from save_bill_info savebillin0_,
CUST_INFO custinfo1_,
entity_acct_bill entityacct2_
where savebillin0_.cust_id = custinfo1_.ID
and entityacct2_.ACCOU ......

oracle锁表相关语句

我写的脚本,有点慢,将就着用吧
--kill session语句
alter system kill session'50,492';
--以下几个为相关表
SELECT * from v$lock;
SELECT * from v$sqlarea;
SELECT * from v$session;
SELECT * from v$process ;      
SELECT * from v$locked_object;   
SELECT * from all_ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号