パッケージ内に次の機能があります。
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()}";