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

ORACLE PL/SQL子程序

温故而知新,果然如此呀,第二次再翻开同样的内容果然有不同的收获,有些是第一次看的时候没有仔细理解的,还有些可能是在第一次看匆匆就跳过的,当然,可能还有部分是自己当时记住了完了又给忘记了。今天第二次看到子程序这一章节,发现了些新的内容,呵呵。在这里我就写下一些基本内容和容易忘记的,免得下次又给忘了。内容可能不太全面,有点针对我个人哦,呵呵!
1.创建子程序的语法
创建过程
CREATE [OR REPLACE] PROCEDURE procedure_name
[(argument [{IN | OUT| IN OUT}] type,
...
argument [{IN | OUT| IN OUT}] type)]
{IS | AS} --IS和AS没区别
procedure_body

创建函数
CREATE [OR REPLACE] FUNCTION function_name
[(argument [{IN | OUT| IN OUT}] type,
...
argument [{IN | OUT| IN OUT}] type)]
RETURN return_type {IS | AS} --IS和AS没区别
procedure_body

2.参数模式
IN 
调用过程的时候,实际参数的值就会传递到该过程中。在过程内部,形式参数就像PL/SQL的常量一样--它会被看作是只读且不能修改的。当过程执行完毕,程序的控制返回到调用环境的时候,实际参数的值不会有任何变化。
OUT
调用过程的时候,会忽略所有实际参数的值。在过程内部,形式参数就像未初始化的PL/SQL变量一样,也会有一个NULL值。形式参数的值既可以读取,也可以写入。过程执行完成以后,控制就会返回到调用环境,同时会将形式参数的值赋给实际参数。
IN OUT
这是IN和OUT的复合模式。调用过程的时候,实际参数的值会传递到过程中。在过程内部,形式参数就像初始化以后的变量,可以读取和写入。过程结束以后,控制会返回到调用环境,同时会将形式参数的内容分配给实际参数。
3.以传值和传引用的方式传递参数
传递子程序参数的方式有两种--传值和传引用。当以引用的方式传递参数的时候,就将指向实际参数的一个指针传递到相应的形式参数。另一方面,当以传值的方式传递参数的时候,就将实际参数的值复制到相应的形式参数。以引用的方式传递参数通常会更快,因为它避免了复制。对集合类型的参数而言,这表现更加明显,因为集合类型的数据一般都非常多。
默认情况下,PL/SQL对IN参数都使用传引用的方式,而对IN OUT和OUT参数都使用传值的方式。
1)NOCOPY的使用方法
parameter_name [mode] NOCOPY datatype
其中parameter_name是参数的名称,mode是参数模式,而datatype


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

实用SQL語句

http://blog.csdn.net/fenglibing/archive/2007/10/24/1841537.aspx
1、将一个表中的内容拷贝到另外一个表中
insert into testT1(a1,b1,c1) select a,b,c from test;
insert into testT select * from test; (前提是兩個表的結構完全相同)
 
insert into notebook(id,title,content)
se ......

sql小计汇总 rollup用法实例分析

 这里介绍sql server2005里面的一个使用实例:
CREATE TABLE tb(province nvarchar(10),city nvarchar(10),score int)
INSERT tb SELECT '陕西','西安',3
UNION ALL SELECT '陕西','安康',4
UNION ALL SELECT '陕西','汉中',2
UNION ALL SELECT '广东','广州',5
UNION ALL SELECT '广东','珠海',2
UNION ......

在ORACLE和sql server中简单备份table的方法

如果temp_t1不存在,
oracle:
create table temp_t1
as
select * from t1
sql server:
select * into temp_t1 from t1
如果temp_t1存在,
oracle:
insert into table temp_t1
select * from t1
sql server:
insert into table temp_t1
select * from t1 ......

SQL SERVER 2005 存储过程

USE AdventureWorks
GO
CREATE PROC spEmployee
AS
SELECT * from Humanresources.Employee
EXEC spEmployee
ALTER PROC spEmployee
AS SELECT EmployeeID from Humanresources.Employee
drop proc spEmployee
ALTER PROC spEmployee
@LastName nvarchar(50) = NULL
AS
IF @LastName IS NULL
SELECT * f ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号