一、如果非要写存储过程的话,做为以Java谋生的我,首选用Java编写,用PL/SQL需要记忆很多的语法(Pascal类的语法)和函数,
远不如使用Java/JDBC这么轻车熟路。而且,DB2等数据库都支持Java存储过程,所以不比为每一种数据
学习一种编写存储过程的方法了。
Java存储过程与一般的JDBC程序有所不同的是:
1.有安全限制,毕竟是在oracle内部运行的,不允许访问操作系统的资源,如文件。
2.获取数据库联接方式,connection = new OracleDriver().defaultConnection();
3.System.out,System.err,System.in等输入输出有所不同。可以利用某些命令重定向。
下面用Java 存储过程写一个Hello World的例子。
1)在plsqldeveloper里,java source里增加一个TestJava1类:
Java代码
1.create or replace and compile java source named TestJava1 as
2.public class Test
Java1
3.{
4. public static void test()
5. {
6. System.out.println("Hello");
7. }
8.}
create or replace and compile java source named TestJava1 as
public class TestJava1
{
public static void test()
{
System.out.println("Hello");
}
}
执行它,以保存并编译。
2)增加一个procedure,执行如下命令:
Java代码
1.create or replace procedure testJava1 as language java name 'TestJava1.test()';
create or replace procedure testJava1 as language java name 'TestJava1.test()';
3)在command window里输入
Java代码
1.SET SERVEROUTPUT ON;
2.CALL dbms_java.set_output(2000);
SET SERVEROUTPUT ON;
CALL dbms_java.set_output(2000);
以使System.out重定向到当前窗口;
在command window里输入,exec testJava1();
即可看到结果:
Hello
PL/SQL procedure successfully completed
二、2010-01-21存储过程
文章分类:数据库 存储过程
在使用 Microsoft? SQL Server? 2000 创建应用程序时,Transact-SQL 编程语言是应用程序和 SQL Server 数据库之间的主要编程
接口。使用 Transact-SQL 程序时,可用两种方法存储和执行程序。可以在本地存储程序,并创建向 SQL Server 发送命令并处理结果
的应用程序;也可以将程序在 SQL Server 中存储为存储过程,并创建执行存储过程并处理结果的应用程序。
SQL Server 中的存储过程与其它编程语言中的过程类似,原因是存储过程可以:
接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。
包含执行数据库操作(包括调用其它过程)的编程语句。
向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)。
可使用 Transact-SQL EXECUTE 语句运行存储过程。存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接用在
表达式中。
使用 SQL Server 中的存储过程而不使用存储在客户
计算机本地的 Tra
nsact-SQL 程序的优势有:
允许模块化
程序设计。
只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,
并可独立于程序
源代码而单独修改。
允许更快执行。
如果某操作需要大量 Transact-SQL 代码或需重复执行,存储过程将比 Transact-SQL 批代码的执行要快。将在创建存储过程时对其
进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 Transact-SQL 语句时,都要从客户端重复发送,并且
在 SQL Server 每次执行这些语句时,都要对其进行编译和优化。
减少网络流量。
一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在
网络中发送数百行代码。
可作为安全机制使用。
即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。
SQL Server 存储过程是用 Transact-SQL 语句 CREATE PROCEDURE 创建的,并