问题标签 [plperlu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
300 浏览

perl - 允许 unix 用户 'postgres' 访问 plperlu 的外部 .pm 文件

我正在将 Windows perl/postgresql Web 应用程序移植到 CentOS。

postgresql.conf我有这些行:

在 Windows 2003 中,这允许我use MyModule;在 PostgreSQL 中放入 plperlu 函数,如果我已经转到带有 .pm 文件的路径并更改 ACL 以授予用户postgres“读取”和“读取和执行”权限,它们就可以工作。安全选项卡。

在 CentOS 6.4 上,我有点困惑。当我尝试定义一个调用 MyModule 的 plperlu 函数时,它给了我ERROR: Can't locate /path/to/my/app/dev/area/MyModule.pm in @INC.

我很困惑,因为 MyModule.pm 归我所有:我拥有 664 个烫发。我尝试了 665,但仍然没有运气:sudo -u postgres ls -l /path/to/my/app/dev/area/MyModule.pm报告Permission denied。据我认为我了解unix权限,665意味着“其他”有权读取和执行。

0 投票
1 回答
892 浏览

postgresql - Postgresql plperlu 和编码

我想在 plperlu 中生成 PDF,将其存储在数据库中,然后将其作为附件添加到电子邮件中。

我正在使用 PDF::Report 来生成 PDF。代码如下所示:-

我认为这个错误与invalid input syntax for type bytea创建的 PDF 文档的编码有关。

文档本身很好,因为$pdf->saveAs('/tmp/test.pdf');它创建了一个完全可读的文档。

我在返回结果之前尝试了 base64 编码,因为电子邮件的附件需要在 base64 中。

这消除了错误,然后我可以将它存储在一个表中: -

这也可以正常工作,并且可以附加到电子邮件中,但是在 base64 解码后损坏问题仍然存在。

直接从数据库中导出文件并运行仅在一行之后base64 -d test.b64就会出现错误。invalid input

这似乎与 postgres 处理 bytea 的方式有关,因为文件如下所示:-

有很多 \012 分隔符。

任何想法,我一直在这几个小时,完全被难住了。

0 投票
0 回答
72 浏览

postgresql - PostgreSQL plperlu 编译错误:错误:没有从编译函数中获得代码引用

我使用以下命令在 Postgres 9.3 (OS - UBUNTU 12.04.5) 中创建了语言 plperlu

创建语言 plperlu;

我想从 postgres 函数调用 shell 脚本所以我使用 plperlu 编写了下面的函数。

下面是函数

编译时出现错误

错误:没有从编译函数“tet_func”获得代码引用上下文:PL/Perl 函数“tet_func”的编译 ********** 错误 **********

错误:没有从编译函数“tet_func”获得代码引用 SQL 状态:XX000 上下文:PL/Perl 函数“tet_func”的编译

有人知道为什么会发生此错误吗?或者任何人都有其他解决方案来从 postgres 函数调用 shell 脚本。