亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 9194 | 回復(fù): 13
打印 上一主題 下一主題

[數(shù)據(jù)庫] Java調(diào)用oracle中函數(shù)問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-10-29 12:36 |只看該作者 |倒序瀏覽
本帖最后由 技術(shù)小菜鳥 于 2013-10-29 12:44 編輯
  1. //Java程序調(diào)用oracle中的函數(shù)
  2. import java.sql.*;
  3. public class orafun1 {

  4.        
  5.         public static void main(String[] args) {
  6.                 try{
  7.                         //加載驅(qū)動
  8.                         Class.forName("oracle.jdbc.driver.OracleDriver");
  9.                         //得到連接
  10.                         Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","SCOTT","yss1019");
  11.                         //創(chuàng)建一個CallableStatement
  12.                         CallableStatement cs = ct.prepareCall("? call sp_fun(?)");
  13.                         //注冊返回值類型
  14.                         cs.registerOutParameter(1,Types.NUMERIC);
  15.                         cs.setString(2,"SCOTT");
  16.                         //調(diào)用
  17.                         cs.execute();
  18.                         System.out.println("年薪:" + cs.getInt(1));
  19.                         cs.close();
  20.                         ct.close();
  21.                                
  22.                 }catch(Exception e){
  23.                         e.printStackTrace();
  24.                 }
  25.        

  26.         }

  27. }
復(fù)制代碼
代碼如上:
下面是報錯信息:
  1. java.sql.SQLException: ORA-00900: 無效 SQL 語句

  2.         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
  3.         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
  4.         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
  5.         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:742)
  6.         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:211)
  7.         at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:950)
  8.         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1159)
  9.         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3284)
  10.         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3389)
  11.         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4222)
  12.         at orafun1.main(orafun1.java:18)
復(fù)制代碼
求教各位啦!

論壇徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午馬
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
2 [報告]
發(fā)表于 2013-10-29 13:25 |只看該作者
本帖最后由 www_xylove 于 2013-10-29 13:25 編輯

沒見你調(diào)用什么oracle函數(shù)啊,你只想通過java程序得到scott的年薪而已。

//創(chuàng)建一個CallableStatement

                        CallableStatement cs = ct.prepareCall("? call sp_fun(?)");

這里有問題,你的求取年薪的語句呢?

java.sql.SQLException: ORA-00900: 無效 SQL 語句

這也告訴你了。

論壇徽章:
0
3 [報告]
發(fā)表于 2013-10-29 16:39 |只看該作者
回復(fù) 2# www_xylove

sp_fun是我在oracle中創(chuàng)建的一個function,這個函數(shù)返回的是Scott的年薪,我想在Java的myeclipse中調(diào)用它
   

論壇徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午馬
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
4 [報告]
發(fā)表于 2013-10-30 10:28 |只看該作者
回復(fù) 3# 技術(shù)小菜鳥

貼一下這個函數(shù)的內(nèi)容



   

論壇徽章:
0
5 [報告]
發(fā)表于 2013-10-30 16:29 |只看該作者
回復(fù) 4# www_xylove
  1. create or replace function sp_fun(spName varchar2) return number is
  2. yearSal number(7,2);
  3. begin
  4. select sal*12+nvl(comm,0)*12 into yearSal from emp where ename = spName;
  5. return yearSal;
  6. end;
復(fù)制代碼
代碼如上

   

論壇徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午馬
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
6 [報告]
發(fā)表于 2013-10-31 09:39 |只看該作者
這個計算年薪的函數(shù),可以手動執(zhí)行一遍,就是說,不放在java里調(diào)用?词欠衲艹鼋Y(jié)果,如果能出結(jié)果,就不說函數(shù)的問題,就是java寫的右問題;如果不能出結(jié)果,報錯。那么就是函數(shù)的問題。

論壇徽章:
0
7 [報告]
發(fā)表于 2013-10-31 16:24 |只看該作者
你試下這個:
CallableStatement cs = ct.prepareCall("? = call sp_fun(?)");

論壇徽章:
0
8 [報告]
發(fā)表于 2013-10-31 16:49 |只看該作者
回復(fù) 6# www_xylove
  1. SQL> var income number;
  2. SQL> call sp_fun('SCOTT')into:income;
  3. Method called
  4. income
  5. ---------
  6. 36000
復(fù)制代碼
在pl/sql developer中運行函數(shù)結(jié)果沒有錯啊,就是不知道為什么Java調(diào)用不了

論壇徽章:
0
9 [報告]
發(fā)表于 2013-10-31 16:52 |只看該作者
回復(fù) 7# cow977

試過了,還是報錯

   

論壇徽章:
0
10 [報告]
發(fā)表于 2013-11-01 08:07 |只看該作者
不能沉啊,不知道原因好難受!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP