云数据库 GAUSSDB-执行SQL语句:调用存储过程
时间:2024-11-02 18:52:46
调用存储过程
GaussDB 支持通过JDBC直接调用事先创建的存储过程,步骤如下:
- 调用Connection的prepareCall方法创建调用语句对象。
1 2 3 4 5 6
// 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全; // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 String userName = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV"); Connection myConn = DriverManager.getConnection("url",userName,password); CallableStatement cstmt = myConn.prepareCall("{? = CALL TESTPROC(?,?,?)}");
- 调用CallableStatement的setInt方法设置参数。
1 2 3
cstmt.setInt(2, 50); cstmt.setInt(1, 20); cstmt.setInt(3, 90);
- 调用CallableStatement的registerOutParameter方法注册输出参数。
1
cstmt.registerOutParameter(4, Types.INTEGER); //注册out类型的参数,类型为整型。
- 调用CallableStatement的execute执行方法调用。
1
cstmt.execute();
- 调用CallableStatement的getInt方法获取输出参数。
1
int out = cstmt.getInt(4); //获取out参数
示例:
1 2 3 4 5 6 7 8 9 10 11 12
//在数据库中已创建了如下存储过程,它带有out参数。 create or replace procedure testproc ( psv_in1 in integer, psv_in2 in integer, psv_inout in out integer ) as begin psv_inout := psv_in1 + psv_in2 + psv_inout; end; /
- 调用CallableStatement的close方法关闭调用语句。
1
cstmt.close();
- 很多的数据库类如Connection、Statement和ResultSet都有close()方法,在使用完对象后应把它们关闭。要注意的是,Connection的关闭将间接关闭所有与它关联的Statement,Statement的关闭间接关闭了ResultSet。
- 一些JDBC驱动程序还提供命名参数的方法来设置参数。命名参数的方法允许根据名称而不是顺序来设置参数,若参数有默认值,则可以不用指定参数值就可以使用此参数的默认值。即使存储过程中参数的顺序发生了变更,也不必修改应用程序。目前GaussDB数据库的JDBC驱动程序不支持此方法。
- GaussDB数据库不支持带有输出参数的函数,也不支持存储过程和函数参数默认值。
- myConn.prepareCall("{? = CALL TESTPROC(?,?,?)}"),执行存储过程绑定参数时,可以按照占位符的顺序绑定参数,注册第一个参数为出参,也可以按照存储过程中的参数顺序绑定参数,注册第四个参数为出参,上述用例为此场景,注册第四个参数为出参。
- 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。
- 存储过程不能和普通SQL在同一条语句中执行。
- 存储过程中inout类型参数必需注册出参。
support.huaweicloud.com/centralized-devg-v2-gaussdb/devg_03_0096.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章
- GaussDB设置默认值_GaussDB存储过程_高斯数据库设置默认值-华为云
- RDS for MySQL限流_华为云数据库RDS_自治限流_SQL限流
- 云数据库RDS for MySQL存储空间自动扩容_存储空间_自动扩容_MySQL云盘
- GaussDB数据库SQL语法_SQL语法_CREATE_ALTER
- 免费云数据库MySQL_MySQL数据库免费_MySQL数据库是免费的吗
- GaussDB数据库案例_GaussDB数据库的优势_华为高斯数据库_新建高斯数据库
- GaussDB性能_性能统计_高斯数据库性能-华为云
- 云数据库Gaussdb快速入门_gaussdb连接__gaussdb案例
- GaussDB数据库产品特性_华为gaussdb_高斯语法
- 连接GaussDB数据库_华为高斯数据库_新建数据库_语法