sql >> データベース >  >> RDS >> Mysql

ストアドプロシージャを使用して選択したい値を取得できません

    ストアドプロシージャのOUTパラメータを介して返される値が必要な場合は、ResultSetを使用せず、ストアドプロシージャのOUTパラメータに関連付けられたCallableStatementパラメータを使用します。たとえば、テストテーブルの場合

    CREATE TABLE `allsections_list` (
     `SECTION_ID` int(11) NOT NULL,
     `SECTION_NAME` varchar(50) DEFAULT NULL,
     PRIMARY KEY (`SECTION_ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    

    サンプルデータを含む

    SECTION_ID  SECTION_NAME
    ----------  ---------------
             1  one_section
             2  another_section
    

    およびストアドプロシージャ

    CREATE PROCEDURE `getSECTION_NAME`(IN myID INT, OUT myName VARCHAR(50))
    BEGIN
       SELECT SECTION_NAME INTO myName FROM allsections_list WHERE SECTION_ID = myID;
    END
    

    次に、次のJavaコード

    try (CallableStatement myFirstCs = conn.prepareCall("{call getSECTION_NAME(?,?)}")) {
        myFirstCs.setInt(1, 2);  // set IN parameter "myID" to value 2
        myFirstCs.registerOutParameter(2, Types.VARCHAR);
        myFirstCs.execute();
        String sectionName = myFirstCs.getString(2);  // get value from OUT parameter "myName"
        System.out.println(sectionName);
    }
    

    プリント

    another_section
    


    1. OracleはMySQLINSERTIGNOREと同等ですか?

    2. Android-SQLite-Date1とDate2の間で選択

    3. PHPファイルはコードの一部を入力できません

    4. MYSQLで列を行に変換する必要があります