【发布时间】:2012-09-20 14:20:28
【问题描述】:
我正在尝试在 PostgreSQL 9.2 数据库中使用 PL/R 过程语言。我已经安装了plr 语言,我正在尝试将它添加到数据库中。当我运行命令CREATE EXTENSION plr; 时,出现以下错误:
ERROR: language "C" does not exist
STATEMENT: CREATE EXTENSION plr;
ERROR: language "C" does not exist
当我用select * from pg_language; 列出数据库中的可用语言时,我得到了
lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline | lanvalidator | lanacl
----------+----------+---------+--------------+---------------+-----------+--------------+--------
internal | 10 | f | f | 0 | 0 | 2246 |
c | 10 | f | f | 0 | 0 | 2247 |
sql | 10 | f | t | 0 | 0 | 2248 |
plpgsql | 10 | t | t | 12514 | 12515 | 12516 |
(4 rows)
所以有一种语言c,但它不是大写字母(不确定这是否有区别)。
我想知道为什么plr 扩展找不到C 程序语言?
【问题讨论】:
-
如果该语言不受信任,那么您必须是超级用户才能使用给定语言创建函数(或语言)。您是否尝试从具有超级用户访问权限的帐户执行此操作?
-
您是否尝试指定小写“c”?在字符串中,大小写往往很重要。外部字符串,它通常不会。
-
我确实有超级用户状态是的。但是我怎么能指定小写的'c'呢?
-
你确定PL/R支持9.2吗?
-
我认为 Joe Conway 在 PL/R 的 v.8.3.0.13.1 中已修复此问题。
标签: postgresql stored-procedures keyword capitalization plr