无法在 PostgreSQL 中使用字符串作为函数参数。
无法在 PostgreSQL 中使用字符串作为函数参数。
这个问题已经在这里有了答案:
我在PostgreSQL函数中遇到了一些问题。
我的表名是people,名字是text类型的,年份是整数类型的。
我想写一个像这样的函数:
create function add() returns void as ' insert into people(name, year) VALUES ('danilo', 12) ' LANGUAGE SQL;
我无法插入字符串,比如danilo。
错误:语法错误,附近为\"danilo\"。
我尝试了
... insert into people(name, year) VALUES ( \'danilo\', 12) ...
但是不起作用。
这个可以完美运行:
...insert into people( year) VALUES ( 12)...
这个也可以:
create function add(text) returns void as ' insert into people(name, year) VALUES ($1, 12) ' LANGUAGE SQL; select add('danilo');
但是我该怎么做才能像这样:
... insert into people(name, year) VALUES ('danilo', 12) ...
有人能帮帮我吗?
谢谢。
admin 更改状态以发布 2023年5月23日
你的案例是一个很好的例子,为什么PostgreSQL有自定义字符串分隔符 - 符号$some$
。自定义字符串分隔符应该成对使用。
postgres=# select $_$Hello$_$; ?column? ---------- Hello (1 row)
撇号没有问题
postgres=# select $_$He'llo$_$; ?column? ---------- He'llo (1 row)
所以你的代码应该像这样
create function add(text) returns void as $$ insert into people(name, year) VALUES ('Hello', 12) $$ LANGUAGE SQL;