- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何在Java程序中调用存储过程
如何在Java程序中调用存储过程(一)? (1)?? 使用scott/tiger用户在Oracle中创建2个表并插入几条数据。
Create table carl_test(A varchar2(200));
create table carl_test1(B varchar2(200));
--insert some data into carl_test1 table
insert into carl_test1 values(carl1);
insert into carl_test1 values(carl2);
insert into carl_test1 values(carl3);
commit;
(2)?? 使用scott/tiger用户在Oracle中创建一个测试存储过程,该存储过程有三个参数,第一个参数为输入参数,最后两个参数为输出参数。为简单起见,没有在该存储过程中加入异常捕获机制。
CREATE OR REPLACE PROCEDURE carl_sp_test ( v_monthly IN varchar2, last_inserted_rows_num OUT number, all_effected_rows_num OUT number)ISBEGIN /*删除carl_test表中所有记录*/ delete carl_test;
/*将删除行数赋值给总影响行数*/ all_effected_rows_num := SQL%Rowcount; commit; /*将用户输入参数插入carl_test表中*/ insert into carl_test(a) values(v_monthly); all_effected_rows_num:= all_effected_rows_num + SQL%Rowcount; /*将表carl_test1中的所有记录插入到carl_test1中*/ insert into carl_test select * from carl_test1; /*获得影响记录数 */ last_inserted_rows_num:=SQL%Rowcount; all_effected_rows_num:= all_effected_rows_num + SQL%Rowcount; commit; END carl_sp_test;
(3)?? 使用scott/tiger用户在SQL/Plus中测试上述存储过程
SQL variable all_effected_rows_num number;
SQL variable last_inserted_rows_num number;
SQL exec carl_sp_test(first var,:last_inserted_rows_num,:all_effected_rows_num);
PL/SQL procedure successfully completed
last_inserted_rows_num
---------
3
all_effected_rows_num
---------
4
SQL print last_inserted_rows_num;
last_inserted_rows_num
---------
3
SQL print all_effected_rows_num;
all_effected_rows_num
---------
4
SQL
上述结果表示测试成功
(4)?? 使用下面的Java类TestStoreProcedure.java测试存储过程。
package test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.OracleTypes;
/**
* This class is used to test Oracle store procedure
* @author CarlWu
*
*/
public class TestStoreProcedure{
/**
* 测试主方法
* @param args
*/
public static void main(String[] args) {
Connection
您可能关注的文档
- 2012—2013学年度第二学期八年级地理检测卷(一).doc
- 解读考纲新变化,亮剑2013年江苏语文高考.doc
- 实验四 分层抽样.doc
- 七年级地理下册新教材第六章第2节电子备课.docx
- 25.7圆和圆的位置关系二.ppt
- 09年德育总结.doc
- 小儿过敏性鼻炎.ppt
- 高等代数典例讲解练习.doc
- 《阿长与山海经》学生版.doc
- Android短信数据库基础.doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)