oracle中pl/sql编程代码实例

oracle中pl/sql编程(二):

set serveroutput on -打开输出选项(这样才可以输出)

set serveroutput off-关闭输出选项

1.包含定义部分和执行部分的pl/sql块

declare

–定义部分

v_ename varchar2(5);–定义字符串变量

begin

–执行部分

select ename into v_ename from emp where empno=&aa;

dbms_output.put_line(‘用户名:’||v_ename);

end;

/

a).说明:dbms_output是oracle所提供的包(类似于java的开发包),

该包包含一些过程,put_Line就是dbms_ouytput包的一个过程

b).注意&代表要接受从控制台输入的变量

c).into v_ename这里的意思是:把查询出来的ename赋值给v_ename

d)||类似于java中的’+’符号,表示连接

2.在1的基础上加上了sal的变量

declare

–定义部分

v_ename varchar2(5);

v_sal number(7,2);

begin

–执行部分

select ename,sal into v_ename,v_sal from emp where empno=&aa;

dbms_output.put_line(‘用户名:’||v_ename|| ‘ 薪水:’||v_sal);

end;

3.包含定义部分,执行部分和例外处理部分

declare

–定义部分

v_ename varchar2(5);

v_sal number(7,2);

begin

–执行部分

select ename,sal into v_ename,v_sal from emp where empno=&aa;

dbms_output.put_line(‘用户名:’||v_ename|| ‘ 薪水:’||v_sal);

–异常处理

exception

when no_data_found then

dbms_output.put_line(‘输入编号错误,请重新输入!’);

end;

–案例(编写一个过程,可以输入雇员名,新工资 可修改雇员的工资

,并且在java程序中调用一个存储过程)

create or replace procedure sp_pro3(spName varchar2,newSal number) is

begin

–执行部分

update emp set sal=newSal where ename=spName;

end;

package javastudy;

import java.sql.*;

public class Testit {

public static void main(String[] args) {

try {

// 加载驱动程序

Class.forName(“oracle.jdbc.driver.OracleDriver”);

// 获得链接

Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:orcl”, “scott”, “lh621366”);

// 创建CallableStatement

CallableStatement cs = conn.prepareCall(“{call sp_pro3(?,?)}”);

// 给?(参数)赋值

cs.setString(1, “SMITH”);

cs.setInt(2, 20);

// 执行(更新)

cs.execute();

// 关闭资源

cs.close();

conn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐