久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

      <i id='hUI3t'><tr id='hUI3t'><dt id='hUI3t'><q id='hUI3t'><span id='hUI3t'><b id='hUI3t'><form id='hUI3t'><ins id='hUI3t'></ins><ul id='hUI3t'></ul><sub id='hUI3t'></sub></form><legend id='hUI3t'></legend><bdo id='hUI3t'><pre id='hUI3t'><center id='hUI3t'></center></pre></bdo></b><th id='hUI3t'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='hUI3t'><tfoot id='hUI3t'></tfoot><dl id='hUI3t'><fieldset id='hUI3t'></fieldset></dl></div>
    1. <legend id='hUI3t'><style id='hUI3t'><dir id='hUI3t'><q id='hUI3t'></q></dir></style></legend>
        <tfoot id='hUI3t'></tfoot>
      1. <small id='hUI3t'></small><noframes id='hUI3t'>

          <bdo id='hUI3t'></bdo><ul id='hUI3t'></ul>

        DB2 java 存儲過程調(diào)用返回錯(cuò)誤 SQLCODE=-440, SQLSTAT

        DB2 java Stored Procedure call return error SQLCODE=-440, SQLSTATE=42884(DB2 java 存儲過程調(diào)用返回錯(cuò)誤 SQLCODE=-440, SQLSTATE=42884)
        <i id='chC2n'><tr id='chC2n'><dt id='chC2n'><q id='chC2n'><span id='chC2n'><b id='chC2n'><form id='chC2n'><ins id='chC2n'></ins><ul id='chC2n'></ul><sub id='chC2n'></sub></form><legend id='chC2n'></legend><bdo id='chC2n'><pre id='chC2n'><center id='chC2n'></center></pre></bdo></b><th id='chC2n'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='chC2n'><tfoot id='chC2n'></tfoot><dl id='chC2n'><fieldset id='chC2n'></fieldset></dl></div>
        <tfoot id='chC2n'></tfoot>

            <bdo id='chC2n'></bdo><ul id='chC2n'></ul>

                <tbody id='chC2n'></tbody>
              • <legend id='chC2n'><style id='chC2n'><dir id='chC2n'><q id='chC2n'></q></dir></style></legend>

                <small id='chC2n'></small><noframes id='chC2n'>

                  本文介紹了DB2 java 存儲過程調(diào)用返回錯(cuò)誤 SQLCODE=-440, SQLSTATE=42884的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  我正在對 DB2 進(jìn)行一個(gè)簡單的存儲過程調(diào)用.當(dāng)它調(diào)用存儲過程時(shí),它總是返回這個(gè)錯(cuò)誤:

                  I am doing a simple stored procedure call to DB2. While it calls the stored procedure, it always returns this error:

                  DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=MEDIAN_RESULT_SET;PROCEDURE, DRIVER=3.66.46
                  

                  ========== Java 代碼:

                  ========== Java code:

                  String JDBC_DRIVER = "com.ibm.db2.jcc.DB2Driver";
                  // STEP 2: Register JDBC driver
                  Class.forName(JDBC_DRIVER);
                  
                  // STEP 3: Open a connection
                  System.out.println("Connecting to database..."); 
                  conn = DriverManager.getConnection(DB_URL, USER, PASS);
                  
                  // to execute the stored procedure.
                  System.out.println("CALL median_result_set(?)");
                  String sql = "CALL median_result_set(?)";
                  CallableStatement stmt1 = conn.prepareCall(sql);
                  stmt1.registerOutParameter(1, Types.DOUBLE);
                  
                  stmt1.execute();
                  System.out.println("jdbcadapter->callproc after execute " + sql);
                  stmt1.close();
                  
                  conn.close();
                  

                  ===============db2 clp 命令行有效:

                  ============== The db2 clp command line worked:

                  c:SP>db2 call median_result_set(?)
                   Value of output parameters 
                   --------------------------
                   Parameter Name  : MEDIANSALARY 
                   Parameter Value : +7.68582000000000E+004
                  
                  Result set 1
                  --------------
                  NAME      JOB   SALARY
                  --------- ----- ---------
                  Marenghi  Mgr    77506.75
                  O'Brien   Sales  78006.00
                  

                  ================存儲過程定義:

                  ================ The stored procedure definition:

                  CREATE PROCEDURE median_result_set
                  -- Declare medianSalary as OUT so it can be used to return values
                  (OUT medianSalary DOUBLE)
                  RESULT SETS 2
                  LANGUAGE SQL
                  BEGIN
                  
                     DECLARE v_numRecords INT DEFAULT 1;
                     DECLARE v_counter INT DEFAULT 0;
                  
                     DECLARE c1 CURSOR FOR
                        SELECT salary FROM staff
                         ORDER BY CAST(salary AS DOUBLE);
                  
                    -- use WITH RETURN in DECLARE CURSOR to return a result set
                    DECLARE c2 CURSOR WITH RETURN FOR
                     SELECT name, job, salary
                     FROM staff 
                     WHERE CAST(salary AS DOUBLE) > medianSalary
                     ORDER BY salary;
                  
                    -- use WITH RETURN in DECLARE CURSOR to return another result set
                   DECLARE c3 CURSOR WITH RETURN FOR
                      SELECT name, job, salary
                      FROM staff
                      WHERE CAST(salary AS DOUBLE) < medianSalary
                      ORDER BY SALARY DESC;
                  
                   DECLARE CONTINUE HANDLER FOR NOT FOUND
                     SET medianSalary = 6666; 
                  
                   -- initialize OUT parameter
                   SET medianSalary = 0;
                  
                   SELECT COUNT(*) INTO v_numRecords FROM STAFF;
                  
                   OPEN c1;
                  
                     WHILE v_counter < (v_numRecords / 2 + 1) DO
                       FETCH c1 INTO medianSalary;
                       SET v_counter = v_counter + 1;
                    END WHILE;
                    CLOSE c1;
                  
                    -- return 1st result set, do not CLOSE cursor
                    OPEN c2;
                  
                    -- return 2nd result set, do not CLOSE cursor
                    OPEN c3;
                  END @
                  

                  推薦答案

                  基本上SQLCODE=-440, SQLSTATE=42884"表示找不到存儲過程.

                  Basically "SQLCODE=-440, SQLSTATE=42884" means that stored procedure can not be found.

                  我看到一個(gè)很常見的原因是參數(shù)不匹配.

                  I saw a very common cause is the argument doesn't match.

                  就我而言,我注意到在 java 代碼中,我必須將架構(gòu)名稱放在存儲過程名稱的前面,例如,而不是 median_result_set(?),我應(yīng)該使用 SCHEMANAME.median_result_set(?)

                  For my case, I noticed that in java code, I have to put the schema name in front of the stored procedure name, e.g, instead of median_result_set(?), I should do SCHEMANAME.median_result_set(?)

                  可以使用一些數(shù)據(jù)庫管理工具找到此 SP 的 SCHEMANAME.

                  The SCHEMANAME for this SP can be found with some DB admin tools.

                  我不需要從命令行指定架構(gòu)名稱的原因:似乎當(dāng)我在創(chuàng)建該 SP 時(shí)使用同一用戶從 CLP 命令行調(diào)用 SP 時(shí),不需要架構(gòu)名稱(因?yàn)樗鼈冊趦?nèi)部匹配).當(dāng)然,在命令行中指定模式總是正確的.我觀察到 DB2 在內(nèi)部使用用戶名作為模式名.例如,如果ADMINISTRATOR"創(chuàng)建了一個(gè) SP,那么字符串ADMINISTRATOR"就是它的架構(gòu)名稱,只要我在 Windows 上看到.

                  The reason why I don't need to specify the schema name from the command line: it seems that when I call SP from CLP command line with the same user when I created that SP, there is no need to the schema name (because internally they match up). Of course, it is always right if you specify the schema at the command line. I observed DB2 internally uses user name as schema name. E.g, if "ADMINISTRATOR" created a SP, the string "ADMINISTRATOR" is its schema name, as long as I see on Windows.

                  這篇關(guān)于DB2 java 存儲過程調(diào)用返回錯(cuò)誤 SQLCODE=-440, SQLSTATE=42884的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  How can I detect integer overflow on 32 bits int?(如何檢測 32 位 int 上的整數(shù)溢出?)
                  Local variables before return statements, does it matter?(return 語句之前的局部變量,這有關(guān)系嗎?)
                  How to convert Integer to int?(如何將整數(shù)轉(zhuǎn)換為整數(shù)?)
                  How do I create an int array with randomly shuffled numbers in a given range(如何在給定范圍內(nèi)創(chuàng)建一個(gè)隨機(jī)打亂數(shù)字的 int 數(shù)組)
                  Inconsistent behavior on java#39;s ==(java的行為不一致==)
                  Why is Java able to store 0xff000000 as an int?(為什么 Java 能夠?qū)?0xff000000 存儲為 int?)
                  <tfoot id='DR3sB'></tfoot>
                  <i id='DR3sB'><tr id='DR3sB'><dt id='DR3sB'><q id='DR3sB'><span id='DR3sB'><b id='DR3sB'><form id='DR3sB'><ins id='DR3sB'></ins><ul id='DR3sB'></ul><sub id='DR3sB'></sub></form><legend id='DR3sB'></legend><bdo id='DR3sB'><pre id='DR3sB'><center id='DR3sB'></center></pre></bdo></b><th id='DR3sB'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='DR3sB'><tfoot id='DR3sB'></tfoot><dl id='DR3sB'><fieldset id='DR3sB'></fieldset></dl></div>
                    • <bdo id='DR3sB'></bdo><ul id='DR3sB'></ul>

                      <small id='DR3sB'></small><noframes id='DR3sB'>

                      • <legend id='DR3sB'><style id='DR3sB'><dir id='DR3sB'><q id='DR3sB'></q></dir></style></legend>
                            <tbody id='DR3sB'></tbody>

                            主站蜘蛛池模板: 黄色网址在线免费观看 | 成人在线亚洲 | 97国产精品| 一区二区三区视频免费看 | 一区二区中文字幕 | 亚洲免费三区 | 久久激情视频 | 精品视频在线免费观看 | 男女网站免费观看 | 美女一区二区在线观看 | 精品视频在线观看 | 精品99久久 | 中文字幕第一页在线 | 婷婷成人在线 | 成人精品啪啪欧美成 | 午夜影院在线观看免费 | 久久91av| 久久综合九色综合欧美狠狠 | 午夜久久久| 无人区国产成人久久三区 | 国产高清视频在线 | 一区二区欧美在线 | 九九热国产精品视频 | 日韩电影免费在线观看中文字幕 | 国产一级特黄视频 | 欧美一级高潮片免费的 | 国产精品久久久久久婷婷天堂 | 日本三级在线视频 | 男人的天堂久久 | 亚洲久久| 91在线视频观看免费 | 青青久草| 九九精品在线 | 中文字幕精品视频 | 伊人色综合久久久天天蜜桃 | 国产线视频精品免费观看视频 | 91精品国产综合久久久亚洲 | 亚洲欧美中文日韩在线v日本 | 中文字幕精品视频在线观看 | 久久久精彩视频 | 国产一在线观看 |