第一范文网 - 专业文章范例文档资料分享平台

oracle存储过程学习经典入门

来源:用户分享 时间:2025/5/29 7:50:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

总结说明:

在Oracle开发过程中,我们可以使用动态SQL来执行DDL语句、DML语句、事务控制语句及系统控制语句。但是需要注意的是,PL/SQL块中使用动态SQL执行DDL语句的时候与别的不同,在DDL中使用绑定变量是非法的(bind_variable(v_cursor,’:p_name’,name)),分析后不需要执行DBMS_SQL.Bind_Variable,直接将输入的变量加到字符串中即可。另外,DDL是在调用DBMS_SQL.PARSE时执行的,所以DBMS_SQL.EXECUTE也可以不用,即在上例中的v_row:=dbms_sql.execute(v_cursor)部分可以不要。

Oracle存储过程调用Java方法

存储过程中调用Java程序段 软件环境:

1、 操作系统:Windows 2000 Server

2、 数 据 库:Oracle 8i R2 (8.1.7) for NT 企业版 3、 安装路径:C:\\ORACLE 实现方法:

1、 创建一个文件为Test.java public class Test { } public static void main(String args[]) { } System.out.println(\2、 javac Test.java 3、 java Test

4、 SQL> conn system/manager

SQL> grant create any directory to scott; SQL> conn scott/tiger

SQL> create or replace directory test_dir as 'd:\\'; 目录已创建。

SQL> create or replace java class using bfile(test_dir,'TEST.CLASS') 2 /

Java 已创建。

SQL> select object_name,object_type,STATUS from user_objects; SQL> create or replace procedure test_java as language java

name 'TEST.main(java.lang.String[])'; /

过程已创建。

SQL> set serveroutput on size 5000 SQL> call dbms_java.set_output(5000); 调用完成。

SQL> execute test_java;

HELLO THIS iS A Java PROCEDURE

PL/SQL 过程已成功完成。 SQL> call test_java();

HELLO THIS iS A Java PROCEDURE 调用完成。

Oracle 8I 9I都测试通过。

Oracle高效分页存储过程实例

create or replace package p_page is -- Author : PHARAOHS -- Created : 2006-4-30 14:14:14 -- Purpose : 分页过程 TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集 PROCEDURE Pagination( Pindex in number, --分页索引 Psql in varchar2, --产生dataset的sql语句 Psize in number, --页面大小 Pcount out number, --返回分页总数 v_cur out type_cur --返回当前页数据记录 ); procedure PageRecordsCount( Psqlcount in varchar2, --产生dataset的sql语句 Prcount out number --返回记录总数 ); end p_page; / create or replace package body p_page is PROCEDURE Pagination( Pindex in number, Psql in varchar2, Psize in number, Pcount out number, v_cur out type_cur ) AS v_sql VARCHAR2(1000); v_count number; v_Plow number;

v_Phei number; Begin ------------------------------------------------------------取分页总数 v_sql := 'select count(*) from (' || Psql || ')'; execute immediate v_sql into v_count; Pcount := ceil(v_count/Psize); ------------------------------------------------------------显示任意页内容 v_Phei := Pindex * Psize + Psize; v_Plow := v_Phei - Psize + 1; --Psql := 'select rownum rn,t.* from zzda t' ; --要求必须包含rownum字段 v_sql := 'select * from (' || Psql || ') where rn between ' || v_Plow || ' and ' || v_Phei ; open v_cur for v_sql; End Pagination; --************************************************************************************** procedure PageRecordsCount( Psqlcount in varchar2, Prcount out number ) as v_sql varchar2(1000); v_prcount number; begin v_sql := 'select count(*) from (' || Psqlcount || ')'; execute immediate v_sql into v_prcount; Prcount := v_prcount; --返回记录总数 end PageRecordsCount; --************************************************************************************** end p_page; /

搜索更多关于: oracle存储过程学习经典入门 的文档
oracle存储过程学习经典入门.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1f2he55fiq4mn0g1lug8_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top