当前位置: 首页 > 知识库问答 >
问题:

在postgresql中不能在函数中使用字符串[重复]

柯骏
2023-03-14
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)
...

有人能帮我吗?

谢谢你。

共有1个答案

端木朝
2023-03-14

您的案例就是一个很好的例子,为什么PostgreSQL有自定义字符串分隔符-symbol$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;
 类似资料:
  • 问题内容: 几天前,我在网上搜索时,发现了一篇有关python词典的有趣文章。这是关于使用字典中的键来调用函数。在那篇文章中,作者定义了一些函数,然后定义了一个字典,其键与函数名完全相同。然后,他可以从用户那里获得输入参数并调用相同的方法(类似于实现大小写中断)。此后,我意识到同样的事情,但有所不同。我想知道如何实现这一目标。如果我有一个功能: 现在,如果我有这样的字符串: 有没有一种方法可以执行

  • 当我试图用日期重命名上传的图像时,一个错误被抛出,它显示“无法读取未定义的属性'isLoggedIn'”。 如果有人能解决这个问题,我会很高兴的。首先感谢Multer,我认为它会抛出一个错误,然后转到错误处理中间件。 下面是我的app.js常量path=require('path');

  • 问题内容: 我有这样的SQL查询 并试图像这样在hql中实现它, 并得到这样的错误 如何做到这一点?hql中对应的字符串函数是什么?是否有使用标准查询API的解决方案? 问题答案: 是的,不支持。请参阅API文档上HQL支持的功能列表。 现在您剩下了2个选项。 使用方法。 通过扩展和创建函数来创建自己的类。这是在hibernate论坛上说这里在博客中很好地解释这里。

  • 问题内容: 在PHP中,HEREDOC字符串声明对于输出html块确实非常有用。您可以通过在变量前面加上$来解析变量,但是对于更复杂的语法(如$ var [2] [3]),则必须将表达式放在{}中。 在PHP 5中,这 是 可能实际上使{}一个HEREDOC字符串中括号内的函数调用,但你必须要经过一些工作。函数名称本身必须存储在变量中,并且必须像动态命名函数一样调用它。例如: 如您所见,这不仅比以

  • 下面是一个名为“containers”的表的片段。 如何将“产品”列更改为“字符变化[]”,并将相应的修饰符更改为默认值“{}”::字符变化[]?本质上,我想将字符串转换为字符串数组。注意,“产品”列对字符数没有限制。 抛出以下错误 错误:“products”列不能转换为不同类型的字符[]

  • ActivationFunction.java:6:错误:不兼容类型:double无法转换为字符串r=double.ParseDouble(r);^ActivationFunction.java:8:错误:不兼容类型:如果(double.isNaN(x))返回r,则字符串无法转换为double;^