oracle简单存储过程(带参数)

1、新建一个存储过程

 

create or replace procedure Test_getTast(in_id    in VARCHAR2,
                                       out_name out VARCHAR2
                                       )
is
begin
  select title into out_name
  from  assignment t
  where task_id = in_id;
exception
when NO_DATA_FOUND then dbms_output.put_line('exception');
end Test_getTast;


2、新建一个测试窗口

-- Created on 12-12-7 by ADMINISTRATOR 
declare 
  -- Local variables here
  i varchar2(7);
  j varchar2(8000);
begin
  i := '25978';
  dbms_output.put_line(i);
  Test_getTast(i,j);
  dbms_output.put_line(j);
end;


 

### 如何在 Oracle 数据库中执行带参数存储过程 #### 创建带有输入和输出参数存储过程 创建一个具有输入(IN) 和 输出(OUT) 参数存储过程,这允许传递数据给存储过程以及接收返回的结果。 ```sql CREATE OR REPLACE PROCEDURE example_procedure ( input_param IN VARCHAR2, output_param OUT NUMBER ) IS BEGIN -- 执行某些操作并将结果赋值给output_param SELECT COUNT(*) INTO output_param FROM employees WHERE department_name = input_param; END; / ``` #### 使用匿名PL/SQL块调用存储过程 当希望测试或直接从SQL*Plus或其他命令行工具运行时,可以通过编写一个匿名PL/SQL块来实现: ```plsql DECLARE v_output NUMBER; BEGIN example_procedure('Sales', v_output); DBMS_OUTPUT.PUT_LINE('Number of Employees in Sales Department: ' || TO_CHAR(v_output)); END; / ``` 此代码定义了一个局部变量`v_output`用于保存来自存储过程的输出,并打印最终结果[^2]。 #### 应用程序层面上调用存储过程 对于Java应用来说,可以利用JDBC API中的CallableStatement接口来进行调用。下面是一个简单的例子展示如何通过Hibernate框架内的方法去调用名为`proc_stuInfo()`的存储过程并向其提供必要的参数: ```java String sql = "{call proc_stuInfo(?)}"; session.doWork(connection -> { try (CallableStatement cs = connection.prepareCall(sql)) { // 设置IN参数 cs.setString(1, "someValue"); // 如果存在OUT参数,则注册它们的数据类型 cs.registerOutParameter(2, Types.VARCHAR); // 调用存储过程 cs.execute(); // 获取并处理OUT参数 String result = cs.getString(2); System.out.println(result); } }); ``` 上述示例展示了如何设置IN参数并通过索引来获取OUT参数的值[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值