JAVA程序调用PLSQL里边写的小函数

1.首先需要登陆PLSQL。在procedure里边创建函数

函数如下:
create or replace procedure tableCT( sqlStr in varchar2) is
-- sqlStr1 varchar2(80);
begin
  --sqlStr1 := 'CREATE table HPDAPPENDIX.A (a number)';
  Execute immediate sqlStr;
end;

2.在java中写程序调用函数

1.连接数据库:
package DB;

//连接数据库

import java.sql.*;

public class ConnDB {
	
	private Connection conn = null;
	
	public Connection getConn(){
		
		
		try{
	  		String className="oracle.jdbc.driver.OracleDriver";
	  		String url = "jdbc:oracle:thin:@localhost:1521:tjhc";  		
	  		//String userName = "sys as sysdba";
	  		String userPass ="123456";
			Class.forName(className);
	  		conn = DriverManager.getConnection(url,"sys as sysdba",userPass);
			
		}catch(Exception e){
			
			e.printStackTrace();
		}
		
		return conn;
	}
}


2.调用函数:
package DB;

import java.util.*;
import java.sql.*;

public class tblCT {
	public static void main(String[] args){
		Connection conn = null;
		CallableStatement proc = null;
		ResultSet rs = null;
		try{
			conn = new ConnDB().getConn();
			proc = conn.prepareCall("{call tableCT(?)}");//注意,一定要用大括号!刚开始用小括号,坑死我了
			//传递参数
			proc.setString(1, "CREATE table HPDAPPENDIX.A (a number)");
			proc.execute();

		}
		catch(Exception e){
			e.printStackTrace();
		}
		finally{
			try {
				proc.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
}




3.如此便可调用PLSQL中的函数

当然也可以直接在PLSQL中调用自己写的PLSQL函数:
--声明变量
declare

sqlStr varchar2(100);
begin
  --dbms_output.put_line(tName);
  sqlStr := 'CREATE table HPDAPPENDIX.B (a number)';
  tableCT(sqlStr);
  
  end;

当然,我只是初学者,还在不断的摸索中。哈哈

你可能感兴趣的:(PLSQL,JAVA,PLSQL,函数)