Попытка go просмотреть список значений, где может быть значение с одинарной кавычкой. Когда я пытаюсь передать его через функцию, она не работает.
Выдает ошибку,
Execution error in store procedure REPORT_PRESENTATION_DATA: SQL compilation error: parse error line 1 at position 164 near '<EOF>'. syntax error line 1 at position 158 unexpected 't'. At Statement.execute, line 90 position 41
Затем я добавляю myCommonValue = myCommonValue.replace ("'", "' '" ); но теперь получите ошибку,
JavaScript execution error: Uncaught TypeError: Cannot read property 'replace' of null in REPORT_PRESENTATION_DATA at ' myCommonValue = myCommonValue.replace("'","''");' position 36 stackstrace: REPORT_PRESENTATION_DATA line: 85
Вот пример кода:
CREATE OR REPLACE PROCEDURE MY_SNOWFLAKE_PROCEDURE()
RETURNS VARIANT
LANGUAGE JAVASCRIPT
AS
$$
...
sqlText = ` SELECT fields FROM MYTABLE `;
statement = snowflake.createStatement({ sqlText });
const rs = statement.execute();
let results = [];
while (rs.next()) {
let myColumnValue = rs.getColumnValue(1);
myColumnValue = myColumnValue.replace("'","''");
// Using the column value which could contain a single quote in the string,
// get a second result set. IE: "gov't" may be the string value passed into Query_GroupValues
sqlText = ` SELECT * FROM table(Query_GroupValues('${startdate}', '${enddate}', ARRAY_CONSTRUCT('${myColumnValue}'))) `;
statement = snowflake.createStatement({ sqlText });
const rsTableValue = statement.execute();
if (statement.getRowCount() > 0) {
let myValue = rsTableValue.getColumnValue(1);
struct = {
attributes: {
value: myValue
}
}
results.push(struct);
}
}
...
$$;