</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;
</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中的函数
--声明变量
declare
sqlStr varchar2(100);
begin
--dbms_output.put_line(tName);
sqlStr := 'CREATE table HPDAPPENDIX.B (a number)';
tableCT(sqlStr);
end;
当然,我只是初学者,还在不断的摸索中。哈哈