create or replace procedure test_09171(c_custkey varchar(25) , c_mktsegment varchar(25) , cname varchar(25)) returns string not null language javascript execute as owner as $$ var sqlquery="";> var VMAJOR=""; var VMINOR=""; try { IF (C_MKTSEGMENT IS NULL OR CNAME IS NULL OR C_MKTSEGMENT =' ' OR CNAME =' ') { var sql_command =`SELECT C_MKTSEGMENT,cname from customers WHERE ccustkey=C_CUSTKEY`; var rs=snowflake.createStatement( {sqlText: sql_command}); var result_set1 = rs.execute(); while(result_set1.next()){ VMAJOR =result_set1.getColumnValue(1); return C_MKTSEGMENT; VMINOR =result_set1.getColumnValue(1); return CNAME; } } return "succeeded" } catch(error) { return error.message } $$;
Al intentar ejecutar el proceso de la siguiente manera
call test_09171('1369097','','Customer#001369097');
estoy recibiendo este error
Error de compilación de JavaScript: error de sintaxis no capturado: falta) después de la lista de argumentos en TEST_09171 en la posición 7 de 'IF(C_MKTSEGMENT is null)'
puede intentarlo con LLAMADO EN NULL INPUT
Más detalles: https://docs.snowflake.com/en/sql-reference/sql/create-procedure.html#opcional-parametros
Tiene un símbolo mayor que aquí que debe eliminar:
var sqlquery="";>
Se supone que esta línea es JavaScript, pero está escrita como SQL:
IF (C_MKTSEGMENT IS NULL OR CNAME IS NULL OR C_MKTSEGMENT =' ' OR CNAME =' ')
Debe estar en JavaScript:
if (C_MKTSEGMENT == null || CNAME == null || C_MKTSEGMENT == ' ' || CNAME == ' ')