ORA12899 - 创建一个插入布尔参数的函数

时间:2013-10-10 18:45:50

标签: oracle plsql plsqldeveloper

我在包中有以下功能:

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,máximum:1)

我的表架构是这个

COLUMN NAME   DATA_TYPE
CENCUESTA     NUMBER(8,0)
XENCUESTA     VARCHAR2(255 BYTE)
IHOME         VARCHAR2(5 BYTE)
BACTIVO       CHAR(1 BYTE)

我使用带有此查询字符串的callableStatement传递0作为值

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

0 个答案:

没有答案