- 論壇徽章:
- 0
|
本帖最后由 技術(shù)小菜鳥 于 2013-10-29 12:44 編輯
- //Java程序調(diào)用oracle中的函數(shù)
- import java.sql.*;
- public class orafun1 {
-
- public static void main(String[] args) {
- try{
- //加載驅(qū)動
- Class.forName("oracle.jdbc.driver.OracleDriver");
- //得到連接
- Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","SCOTT","yss1019");
- //創(chuàng)建一個CallableStatement
- CallableStatement cs = ct.prepareCall("? call sp_fun(?)");
- //注冊返回值類型
- cs.registerOutParameter(1,Types.NUMERIC);
- cs.setString(2,"SCOTT");
- //調(diào)用
- cs.execute();
- System.out.println("年薪:" + cs.getInt(1));
- cs.close();
- ct.close();
-
- }catch(Exception e){
- e.printStackTrace();
- }
-
- }
- }
復(fù)制代碼 代碼如上:
下面是報錯信息:- java.sql.SQLException: ORA-00900: 無效 SQL 語句
- at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
- at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
- at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
- at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:742)
- at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:211)
- at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:950)
- at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1159)
- at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3284)
- at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3389)
- at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4222)
- at orafun1.main(orafun1.java:18)
復(fù)制代碼 求教各位啦! |
|