PostgreSQL。创建演员表“角色变化”为“整数”
我想创建一个合适的函数来将“字符变化”转换为“整数”。谁能建议一个功能吗?我尝试的一切都失败了。
I want to CREATE CAST a suitable function to convert 'character varying' to 'integer'. Can anyone suggest a function? Everything I try fails.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用它:
它使用所涉及的数据类型的输入/输出函数。
Use this:
It uses the input/output functions of the data types involved.
如果您更新 SQL 以执行显式转换,则上面的函数将起作用。
但是,如果您将“asimplicit”添加到“createcast”语句的末尾,当您将整数与可转换为整数的varchar进行比较时,Postgres将能够自动找出您要执行的操作。
这是我更新的声明,它似乎“隐式”起作用:
The function above works if you update your SQL to do an explicit cast.
However, if you add 'as implicit' to the end of your "create cast" statement, Postgres will be able to automatically figure out what you are trying to do when you compare an integer with a varchar that can be converted to an integer.
Here is my updated statement that seemed to work "implicitly":
我假设您想恢复 Postgres 8.3 关于隐式转换的行为。
请参阅此博客条目以获取示例:
http://petereisentraut.blogspot.com/2008/03 /readding-implicit-casts-in-postgresql.html
哦:还有软件供应商修复损坏的 SQL 的 bug ;)
编辑
这应该可以做到:
I assume you want to get back the behaviour of Postgres 8.3 regarding implicit casting.
See this blog entry for examples:
http://petereisentraut.blogspot.com/2008/03/readding-implicit-casts-in-postgresql.html
Oh: and bug that vendor of the software to fix the broken SQL ;)
Edit
This should do it:
我遇到了同样的错误。我有一个专栏
声明为类型字符变化(20)和局部变量
声明为 int 类型。
我解决了在程序中替换
为
I got the same error. I have a COLUMN
declared as type character varying(20) and a local variable
declared as type int.
I solved replacing in the procedure
with