Some print.
Some print.
~SingleForum~无废话记录~ + ~19~记录点有用的好吗?少说废话少装b~

~SingleForum~无废话记录~ » other

存储过程记录(只有输入参数)

Started 8 months ago by admin. | Tags: . .

过程

过程是为了执行一定任务而组合在一起的SQL语句和PLSQL语句。(个人理解过程就是ORACLE的程序(或者说是方法、函数))

只有输入参数时候的例子

创建存储过程

创建或替换一个存储过程myproc

参数为id ORACLE中参数默认为输入参数 in (之后用is 或者 as 都可以)

CREATE or replace procedure myproc(id in varchar2)
Is
定义一个变量 注意:定义变量一定要给出长度,参数可以不给出长度
Name varchar2(10);
Begin
将books_name放置到变量里面
Select books_name into Name form books where books_id = id;
Dbms_Output.put_line(Name);
End myproc;

执行存储过程

Declare
定义变量
Tid vachar2(10);
Begin
赋值
Tid := ‘001’;
Myproc(Tid);
End;

完整内容:

CREATE or replace procedure myproc(idcs in varchar2)
Is
Namebl varchar2(10);
Begin
select name into Namebl from test where id = idcs;
Dbms_Output.put_line(Namebl);
End myproc;

Declare
Tid integer(10);
Begin
Tid := 1;
Myproc(Tid);
End;

或者

Begin
Myproc(1);
End;

JAVA程序

import java.sql.*;

import java.io.OutputStream;

import java.io.Writer;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import oracle.jdbc.driver.*;

public class TestProcedureOne {

public TestProcedureOne() {

}

public static void main(String args ){

String driver = "oracle.jdbc.driver.OracleDriver";

String strUrl = "jdbc:oracle:thin:@192.168.10.216:1521:ctbu";

Statement stmt = null;

ResultSet rs = null;

Connection conn = null;

CallableStatement cstmt = null;

try {

Class.forName(driver);

conn = DriverManager.getConnection(strUrl, "dbname", "password");

CallableStatement proc = null;

proc = conn.prepareCall("{ call TESTA(?,?) }");

proc.setString(1, 1);

proc.setString(2, "232323");

proc.execute();

}

catch (SQLException ex2) {

ex2.printStackTrace();

}

catch (Exception ex2) {

ex2.printStackTrace();

}

finally{

try {

if(rs != null){

rs.close();

if(stmt!=null){

stmt.close();

}

if(conn!=null){

conn.close();

}

}

}

catch (SQLException ex1) {

}

}

}

}

RSS feed for this topic