Trafodion SPJ 对比 Oracle 存储过程
来源:互联网 发布:韦德巅峰场均数据 编辑:程序博客网 时间:2024/06/05 07:37
Trafodion提供存储过程SPJ,相当于Oracle的存储过程,只不过Oracle的存储过程基于PLSQL,而由于Trafodion暂不支持PLSQL,因此Trafodion的存储过程从实现上面与Oracle存储过程有所不同,它是利用Java实现的,关于如何创建并使用Trafodion SPJ,可以参考我之前的一篇文章 http://blog.csdn.net/post_yuan/article/details/52765656,关于SPJ的详细内容,也可以参考官网文档 http://trafodion.incubator.apache.org/docs/spj_guide/index.html
本篇幅通过一个使用存储过程更新数据的实例来描述分别使用Trafodion SPJ与Oracle的存储过程实现相同的功能,通过实例来了解Trafodion SPJ与Oracle存储过程实现方式的不同。
1 创建样例表并插入测试数据
DROP TABLE customer;CREATE TABLE customer( custnum NUMERIC (4) NOT NULL, custname CHAR (18), street CHAR (22), city CHAR (14), state CHAR (12), postcode CHAR (10), credit CHAR (2), PRIMARY KEY ( custnum ));INSERT INTO customer VALUES( 21, 'CENTRAL UNIVERSITY', 'UNIVERSITY WAY', 'PHILADELPHIA', 'PENNSYLVANIA', '19104', 'A1' );INSERT INTO customer VALUES( 123, 'BROWN MEDICAL CO', '100 CALIFORNIA STREET', 'SAN FRANCISCO', 'CALIFORNIA','94944', 'C2' );INSERT INTO customer VALUES( 143, 'STEVENS SUPPLY', '2020 HARRIS STREET', 'DENVER', 'COLORADO','80734', 'A2' );INSERT INTO customer VALUES( 324, 'PREMIER INSURANCE', '3300 WARBASH', 'LUBBOCK', 'TEXAS','76308', 'A1' );INSERT INTO customer VALUES( 543, 'FRESNO STATE BANK', '2300 BROWN BLVD', 'FRESNO', 'CALIFORNIA','93921', 'B3' );INSERT INTO customer VALUES( 926, 'METALL-AG.', '12 WAGNERRING', 'FRANKFURT', 'WESTGERMANY', '34', 'D4' );INSERT INTO customer VALUES( 1234, 'DATASPEED', '300 SAN GABRIEL WAY', 'NEW YORK', 'NEW YORK','10014', 'C1' );INSERT INTO customer VALUES( 3210, 'BESTFOOD MARKETS', '3333 PHELPS STREET', 'LINCOLN', 'NEBRASKA','68134', 'A4' );INSERT INTO customer VALUES( 3333, 'NATIONAL UTILITIES', '6500 TRANS-CANADIENNE', 'QUEBEC', 'CANADA','H4T 1X4', 'A1' );INSERT INTO customer VALUES( 5635, 'ROYAL CHEMICALS', '45 NEW BROAD STREET', 'LONDON', 'ENGLAND','EC2M 1NH', 'B2' );INSERT INTO customer VALUES( 7654, 'MOTOR DISTRIBUTING', '2345 FIRST STREET', 'CHICAGO', 'ILLINOIS','60610', 'E4' );INSERT INTO customer VALUES( 7777, 'SLEEPWELL HOTELS', '9000 PETERS AVENUE', 'DALLAS', 'TEXAS','75244', 'B1' );INSERT INTO customer VALUES( 9000, 'BUNKNOUGHT INN', '4738 RALPH STREET', 'BAYONNE', 'NEW JERSEY','09520', 'C1' );INSERT INTO customer VALUES( 9010, 'HOTEL OREGON', '333 PORTLAND AVE.', 'MEDFORD', 'OREGON','97444', 'C2' );INSERT INTO customer VALUES( 9033, 'ART SUPPLIES, INC.', '22 SWEET ST.', 'PITTSBURGH', 'PENNA.','08333', 'C3' );
2 编写Trafodion SPJ Java文件并创建对应的Library、SPJ
//Java Source Codeimport java.sql.*; import java.math.*; public class testSPJ { public static void updateCustomer(String customer_name) throws SQLException { Connection conn = DriverManager.getConnection("jdbc:default:connection"); PreparedStatement updateStatement = conn.prepareStatement("update trafodion.seabase.customer " + "set state = 'China' " + "where custname = ?"); updateStatement.setString(1, customer_name); updateStatement.executeUpdate(); conn.close(); } }
//Create Library & SPJcreate library trafodion.seabase.testlibrary file '/home/trafodion/testSPJ.jar'; create procedure trafodion.seabase.updatecustomer(customer_name varchar(50)) external name 'testSPJ.updateCustomer' library trafodion.seabase.testlibrary language java parameter style java;
3 创建Oracle存储过程
CREATE OR REPLACE PROCEDURE updatecustomer1(p_name CHAR)ASBEGIN dbms_output.put_line(p_name); UPDATE customer SET state = 'China' WHERE custname = p_name;END;/
4 测试Trafodion执行存储过程
(1)执行前
(2)执行存储过程
(3)执行后
5 测试Oracle执行存储过程
(1)执行前
(2)执行存储过程
(3)执行后
阅读全文
1 0
- Trafodion SPJ 对比 Oracle 存储过程
- Trafodion 存储过程SPJ
- Trafodion 存储过程的优势
- DB2存储过程(Oracle对比)
- Mysql与Oracle存储过程语法对比
- sybase与oracle存储过程的写法对比
- SQLServer和Oracle的常用函数对比 及存储过程
- SQLServer和Oracle,存储过程区别,常用函数对比
- 存储过程之--MySQL与Oracle实现对比
- 数据库Oracle与Mysql语法对比:存储过程
- oracle学生表与spj供应表
- SQLServer和Oracle,存储过程区别,常用函数对比(二)
- C# 调 SQL server与Oracle存储过程执行差异对比
- Oracle:存储过程,存储函数
- Oracle-存储过程 存储函数
- Oracle存储过程、存储函数
- oracle 存储函数,存储过程
- Oracle存储过程
- 纯干货12 2017年5月份-李宏毅-最新GAN中文视频教程分享
- 《Netty学习》(一)了解netty
- OpenCV框架介绍
- iOS蓝牙BLE开发
- 转载:table单元格内容自动换行
- Trafodion SPJ 对比 Oracle 存储过程
- 搭建Cloudera Manager过程和遇到的问题
- Java菜鸟成长之路__Day_4_Java_抽象,继承,接口
- Linux常见命令的使用
- Shell脚本编程基础 五 Shell自定义函数
- angular2开发环境配置和项目目录创建
- 写给理工科人看的乐理(四)和弦与调式
- NKOJ3251 (CQOI2015) 任务查询系统(差分数组,主席树)
- linux spi驱动开发学习(三)-----spi_bitbang.c详解