欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle中pl/sql编程代码实例

程序员文章站 2022-03-19 20:54:59
oracle中pl/sql编程(二): set serveroutput on -打开输出选项(这样才可以输出) set serveroutput off-关闭输出选项 1....

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();

}

}

}