雪花 sp Javascript

Snowflake sp Javascript

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
 }   $$;

在尝试执行如下过程时

call test_09171('1369097','','Customer#001369097');

我遇到了这个错误

JavaScript compilation error: Uncaught SyntaxError: missing ) after argument list in TEST_09171 at ' IF(C_MKTSEGMENT is null)' position 7

您可以尝试使用 CALLED ON NULL INPUT

更多详情:https://docs.snowflake.com/en/sql-reference/sql/create-procedure.html#optional-parameters

这里有一个大于号需要删除:

var sqlquery="";> 

这一行应该是 JavaScript 但它写成了 SQL:

IF (C_MKTSEGMENT IS NULL OR CNAME IS NULL OR C_MKTSEGMENT =' ' OR CNAME =' ')

应该在JavaScript:

if (C_MKTSEGMENT == null || CNAME == null || C_MKTSEGMENT == ' ' || CNAME == ' ')