現在、私はDAOクラスのJDBC経由でpostgresql関数データをフェッチする問題に直面しています。接続が正しく確立されています。org.postgresql.util.PSQLException:不正な関数またはプロシージャのエスケープ構文(オフセット1)
CallableStatement mngStatement = conn
.prepareCall("{? = CALL SELECT_SEARCH_DETAILS(?,?,?,?,?,?,?,?)}");
mngStatement.registerOutParameter(1, Types.VARCHAR);
mngStatement.setString(2,abc.getContractNumber());
mngStatement.setString(3,abc.getOrderNumber());
mngStatement.setString(4,abc.getShipmentNumber());
mngStatement.setString(5,abc.getShipmentControlNo());
mngStatement.setString(6,abc.getStatusFromDate());
mngStatement.setString(7,abc.getStatusToDate());
mngStatement.setString(8,abc.getSourceSystem());
mngStatement.setString(9,abc.getDestinationSystem());
mngStatement.execute();
rs = (ResultSet) mngStatement.getObject(1);
のようなエラーガイド:
org.postgresql.util.PSQLException:不正な関数またはプロシージャ エスケープ構文は、あなたの提案で私を助けてください
1.オフセット。前もって感謝します。
機能:
FUNCTION SELECT_SEARCH_DETAILS(
IN P_CONTARCT_NUM character varying,
IN P_ORDER_NUM character varying,
IN P_SHIPMENT_NUM character varying,
IN P_SHIP_CON_NUM character varying,
IN P_FROM_DATE character varying,
IN P_TO_DATE character varying,
IN P_SOURCE_SYSTEM character varying,
IN P_DESTINATION_SYSTEM character varying)
RETURNS table(CONTRACT_NUMBER text,ORDER_NUMBER text, SHIPMENT_NUMBER text, SCN text, STATUS_CODE text,STATUS_DATE text, LAST_UPDATE_DATE text, SOURCE_SYSTEM text, DESTINATION_SYSTEM text, RFID_FOLLOW_ON_CODE text, UID_INDICATOR text, IVC_SHIPMENT_SEQ_ID text) AS
$BODY$
何あなたのストアドプロシージャが見えますか? – Berger
こんにちはberger、私は質問の関数本体を更新しました。 – ArnabDutta
誰かがコメントで提案したように、小文字の 'call'を試してみることができますか? – Berger