- 论坛徽章:
- 0
|
本帖最后由 技术小菜鸟 于 2013-10-29 12:44 编辑
- //Java程序调用oracle中的函数
- import java.sql.*;
- public class orafun1 {
-
- public static void main(String[] args) {
- try{
- //加载驱动
- Class.forName("oracle.jdbc.driver.OracleDriver");
- //得到连接
- Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","SCOTT","yss1019");
- //创建一个CallableStatement
- CallableStatement cs = ct.prepareCall("? call sp_fun(?)");
- //注册返回值类型
- cs.registerOutParameter(1,Types.NUMERIC);
- cs.setString(2,"SCOTT");
- //调用
- cs.execute();
- System.out.println("年薪:" + cs.getInt(1));
- cs.close();
- ct.close();
-
- }catch(Exception e){
- e.printStackTrace();
- }
-
- }
- }
复制代码 代码如上:
下面是报错信息:- 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)
复制代码 求教各位啦! |
|