少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          -- Create table
          create table ABIN1
          (
            ID1         NUMBER,
            NAME1       NVARCHAR2(100),
            CREATETIME1 DATE default sysdate
          )



          create or replace function getFunction(myname varchar2)
          return sys_refcursor
          as

          v_sql varchar2(4000);
          mylist sys_refcursor;
          begin
                 v_sql:='select * from abin1 where name1=:1';
                 open myList for v_sql using myname;
                 return(myList);
          end;



          package com.abin.lee.db.oracle;

          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.SQLException;

          public class OracleConnection {
           private static final String USER="abin";
           private static final String PWD="abin";
           private static final String URL="jdbc:oracle:thin:@localhost:1521:XE";
           private static final String DRIVER="oracle.jdbc.driver.OracleDriver";
           private static ThreadLocal<Connection> threadLocal=new ThreadLocal<Connection>(){
            protected Connection initialValue(){
             Connection conn=null;
             try {
              Class.forName(DRIVER);
              if(null==conn||conn.isClosed()){
               conn=DriverManager.getConnection(URL, USER, PWD);
              }
             } catch (Exception e) {
              e.printStackTrace();
             }
             return conn;
            }
            
           };
           
           
           public static Connection getConnection() throws ClassNotFoundException, SQLException{
            Connection conn=null;
            if(threadLocal.get()==null){
             Class.forName(DRIVER);
             conn=DriverManager.getConnection(URL, USER, PWD);
             threadLocal.set(conn);
            }else {
             return threadLocal.get();
            }
            return conn;
           }

          }




          package com.abin.lee.db.oracle;

          import java.sql.CallableStatement;
          import java.sql.Connection;
          import java.sql.ResultSet;

          import junit.framework.TestCase;
          import oracle.jdbc.OracleTypes;

          public class GetFunctionResultSet extends TestCase{
           public void test(){
            Connection conn=null;
            CallableStatement cs=null;
            ResultSet rs=null;
            try {
             conn=OracleConnection.getConnection();
           /*此處是關(guān)鍵,不要寫錯(cuò)了。第一個(gè)問號(hào)代表返回值,getFunction()括號(hào)里面是function的輸入?yún)?shù)。*/  
             cs=conn.prepareCall("{?=call getFunction(?)}");
             cs.registerOutParameter(1, OracleTypes.CURSOR);
             cs.setString(2, "a1");
             cs.execute();
             rs=(ResultSet)cs.getObject(1);
             while(rs.next()&&rs!=null){
              System.out.println("ID="+rs.getInt("id1"));
              System.out.println("NAME="+rs.getString("name1"));
              System.out.println("NAME="+rs.getString("createtime1"));
             }
             
            } catch (Exception e) {
             e.printStackTrace();
            }
            /**
             * create or replace function getFunction(myname varchar2)
             return sys_refcursor
             as
             v_sql varchar2(4000);
             mylist sys_refcursor;
             begin
                    v_sql:='select * from abin1 where name1=:1';
                    open myList for v_sql using myname;
                    return(myList);
             end;
             */
            
           }
          }




          參考資料:
          http://lanselixiangxc.bokee.com/267623.html

          posted on 2012-09-14 12:46 abin 閱讀(576) 評(píng)論(0)  編輯  收藏 所屬分類: oracle
          主站蜘蛛池模板: 福鼎市| 南华县| 成武县| 岱山县| 郧西县| 蕉岭县| 海伦市| 资兴市| 贡山| 丰宁| 杨浦区| 龙井市| 宾阳县| 万山特区| 疏附县| 唐山市| 都兰县| 崇信县| 蓝田县| 监利县| 繁峙县| 法库县| 碌曲县| 宜都市| 杭锦后旗| 金塔县| 苍山县| 台北县| 邵东县| 融水| 汶上县| 民丰县| 金门县| 高州市| 陈巴尔虎旗| 华池县| 天气| 南部县| 思南县| 合江县| 蒙山县|