Problemas con EXEC_SQL

Estoy intentando ejecutar desde forms, una inserción SQL, que guardo en una variable, pero no consigo que me inserte los datos. El código es:
PROCEDURE grabar_datos (fichero in varchar2, separador in varchar2, tabla in varchar2, cabecera in number) IS
V_CAMPO1 VARCHAR2(100);
V_CAMPO2 VARCHAR2(100);
V_CAMPO3 VARCHAR2(100);
V_CAMPO4 VARCHAR2(100);
V_CAMPO5 VARCHAR2(100);
V_CAMPO6 VARCHAR2(100);
sSQL VARCHAR2(5000);
[...]
username varchar2(20);
password2 varchar2(20);
conn_str varchar2(20);
con_status boolean;
con_handle EXEC_SQL.CONNTYPE;
cur_number EXEC_SQL.CURSTYPE;
ret_val number;
[...]
begin
username := GET_APPLICATION_PROPERTY(USERNAME);
password2 := GET_APPLICATION_PROPERTY(PASSWORD);
conn_str := GET_APPLICATION_PROPERTY(CONNECT_STRING);
con_handle := EXEC_SQL.OPEN_CONNECTION(username,password2,conn_str);
cur_number := EXEC_SQL.OPEN_CURSOR(con_handle);
[...]
sSQL := 'INSERT INTO '||:global.tabla||' VALUES ('||v_campo1||','||v_campo2||','||v_campo3||','||v_campo4||','||v_campo5||','||v_campo6||')';
[...]
EXEC_SQL.PARSE(con_handle,cur_number,ssql);
ret_val := EXEC_SQL.EXECUTE(con_handle,cur_number);
EXEC_SQL.CLOSE_CONNECTION(con_handle);
[...]
END;
Eso provoca un error FRM-40738, con el comentario de que el parámetro 1 de GET_APPLICATION_PROPERTY no puede ser nulo.
¿No se porque. Falla ni como debo arreglarlo? ¿Existe otra forma de ejecutar una sentencia SQL?

1 Respuesta

Respuesta
1
En el Insert no pareces tener el problema, sino en las instrucciones que usan el GET_APPLICATION_PROPERTY
Te está indicando que alguno de los valores que le pasas a esa función no contiene nada...
No conozco el forms, así que no puedo ayudarte más, aunque cualquier otra consulta sobre PL/SQL o Oracle sí

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas