请解释一下,为什么我在这里收到错误:
function criaSheet(){
var folder = DriveApp.getFolderById('ID');
folder.createFile('new Spreadsheet', '', MimeType.GOOGLE_SHEETS)
}
答案 0 :(得分:0)
您正在使用PLPGSQL语法,但将该函数声明为SQL。这就是为什么函数失败了SYNTAX ERROR
的原因。使用语句LANGUAGE
声明函数的语言,并在最后一行声明它:
LANGUAGE 'sql' STABLE;
SQL函数不支持BEGIN
- END
语句和异常捕获。
要解决此问题,请在LANGUAGE 'sql'
中进行简单的更改LANGUAGE 'plpgsql'
。
其他一些注意事项:
可能没有必要在此处捕获异常。请改用FOUND变量。
使用STABLE
关键字,该功能无法执行INSERT
。将STABLE
更改为VOLATILE
。
您声明了RETURNS TABLE
,但该函数没有返回任何内容。请改用RETURNS VOID
。
不允许使用SELECT
并丢弃结果。请改用PERFORM
。
您的版本的有效版本可能是:
DROP FUNCTION IF EXISTS upset(varchar);
CREATE or REPLACE FUNCTION upset(domain_name varchar)
RETURNS VOID AS $$
BEGIN
PERFORM domain from separser_domains where domain=domain_name;
IF NOT FOUND THEN
INSERT into separser_domains(domain) VALUES (domain_name);
END IF;
RETURN;
END;
$$
LANGUAGE 'plpgsql' VOLATILE;