0

パッケージ内に次の機能があります。

FUNCTION FUN_GUARDAR_ENCUESTA(
    P_CENCUESTA IN VARCHAR2,
    P_XENCUESTA IN VARCHAR2, 
    P_IHOME     IN NUMBER, 
    P_BACTIVO   IN CHAR, 
    P_MENSAJE   OUT VARCHAR2
) RETURN VARCHAR2
IS 
  v_codigo_error VARCHAR2(200);
BEGIN
   INSERT INTO INC_ENCUESTAS(CENCUESTA, XENCUESTA, IHOME, BACTIVO) 
      VALUES(P_CENCUESTA, P_XENCUESTA, P_IHOME, P_BACTIVO);
    p_mensaje := 'Transacción Exitosa';
    v_codigo_error := '000';
    RETURN v_codigo_error;
EXCEPTION
   WHEN OTHERS THEN
      v_codigo_error := SQLCODE;
      p_mensaje := substr(SQLERRM, 1, 200);
END FUN_GUARDAR_ENCUESTA;

しかし、私がそれをテストするときはいつでも、次のエラーだけです:

ORA-12899: 列"INTRANETCORP"."INC_ENCUESTAS"."BACTIVO"の値が大きすぎます(実際: 200、最大: 1)

私のテーブルスキーマはこれです

列名DATA_TYPE
センクエスタ番号(8,0)
XENCUESTA VARCHAR2(255バイト)
IHOME VARCHAR2(5バイト)
BACTIVO CHAR(1バイト)

このクエリ文字列で callableStatement を使用して、値として 0 を渡しています

String query = "{ ? = call PKG_ENC_UTIL.FUN_GUARDAR_ENCUESTA()}";
4

0 に答える 0