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

</pre>1.首先需要登陆PLSQL。在procedure里边创建函数</h1><div><img src="https://img-blog.youkuaiyun.com/20150707111424657?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></div><div>函数如下:</div><div><pre name="code" class="plain">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";
<span style="white-space:pre">			</span>Class.forName(className);
	  		conn = DriverManager.getConnection(url,"sys as sysdba",userPass);
			
		}catch(Exception e){
			
			e.printStackTrace();
		}
		
		return conn;
	}
}


2.调用函数:
<pre name="code" class="java">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;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值