问题标签 [dbd]

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 回答
283 浏览

mysql - Perl DBD 错误 FUNCTION dbName.GLOB 不存在

我开始为一些 cron 作业编写一些 Perl 脚本,这些作业将查询数据库并发送有关即将发生的事件的提醒。我对 Perl 中的数据库访问非常陌生,因为到目前为止我的大部分工作都是使用 PHP 在 Web 端进行的。无论如何,第一个查询可以很好地生成一个临时输出文件,然后我正在读取该输出文件以循环通过结果查询来查找在第一个查询中发现的用户的特定事件。

我现在遇到的问题是出现以下错误:

这是我的 Perl 代码

提前感谢您的任何帮助。

0 投票
2 回答
479 浏览

perl - 静态链接 DBD::Pg(针对 libpq.so)但针对 Perl 动态链接?

我正在尝试通过 Makefile.PL 在 linux 主机上构建 DBD::Pg;我的要求是,我必须能够动态链接到 perl,但静态链接到 libpq.so(因为它可能并非在所有盒子上都可用)。

是否有捷径可寻?我尝试更改 Makefile.PL 的 LIBS 指令中的链接选项,但 MakeMaker 忽略了我的选项。

0 投票
1 回答
1768 浏览

mysql - Perl 和 DBD::mysql Can't load mysql.so... 也许所需的共享库或 dll 没有安装在预期的位置

在使用本地安装的 perl 和通过 perlbrew 安装的模块的共享主机上运行此代码。它工作了好几个星期。有一天,它开始因以下输出而死亡:

代码没有改变。我运行脚本的方式也没有改变。由于我在共享主机上运行此主机,因此我不知道服务器上可能已更新或更改了哪些内容,但是 perl 已安装到我的主目录中,就像我正在使用的所有模块一样。

0 投票
1 回答
2842 浏览

mysql - 安装:在 `PREFIX=~/perlmods' 之后缺少目标文件操作数

尝试安装 DBD::mysql。共享主机。Perl/cpan 使用 perlbrew 安装在我的主目录中。这个盒子上没有运行 mysql 服务器,也不应该有。

这是我在安装 DBD::mysql 时得到的输出

0 投票
3 回答
6444 浏览

perl - 环境变量在 Perl 中不起作用

我试图在程序一开始就在 Perl 中设置一些环境变量,但我一直收到错误消息,除非我在调用我的 Perl 脚本的 Bash 脚本中设置它们。

这不起作用,但我的 shell 脚本可以:

我设置这些路径是为了让我的 DBI 模块工作。理想情况下,我想在 Perl 脚本中设置路径,而不是使用 Bash 脚本。

错误:

Install_driver (Oracle) 失败:无法为模块 DBD 加载 /some/path/:Oracle:libclntsh.so.11.1:无法打开共享对象文件:/some/path/DynaLoader.pm 第 230 行没有此类文件或目录

代码

0 投票
2 回答
856 浏览

perl - Perl 死于:“使用:DBD::Pg::db::DESTROY(dbh) 在全局销毁期间”

一个稳定的、基于 Web 的、单线程/进程、在生产中运行的 perl 应用程序开始间歇性地抛出此错误,并且仅在系统负载较重的情况下。我们无法确定根本原因。

任何人都可以对这个错误提供任何解释吗?当 Perl 在关闭之前进行清理时,在没有参数(self?)的情况下调用 DESTROY 时,它似乎从 Pg.sx 中抛出。(我通过 google 在较旧的源代码中看到该消息,但在我们的版本中没有。)我们的环境:

  • 操作系统:FreeBSD 8.3-STABLE
  • Perl v5.14.2
  • DBD::Pg v2.19.3
  • PostgreSQL:v9.2.3
0 投票
1 回答
2272 浏览

perl - 基于Sqlite的DBI::CSV实现

我经常处理文本文件,以“SQL 方式”将一个文件与另一个文件进行比较。

DBD::CSV显然是一个不错的选择,因为我可以在文本表上使用 SQL 语法的强大功能。但是,我处理的是巨大的文本文件,DBD::CSV在性能方面毫无用处。

因此,我开始编写一个将 csv 文件转换为 sqlite DB 的模块,然后返回DBI::sqlite我可以使用的对象。问题是,将文本文件转换为 sqlite 表也不是很有效,因为我无法从 perl 运行 sqlite 命令行来快速加载 CSV 文件(使用 .load)。所以我必须Insert into根据文本表创建一个巨大的字符串并执行它(逐行执行插入在性能方面非常低效,所以我更喜欢执行一个大插入)。我愿意避免这种情况,寻找一种使用 perl 将 csv 加载到 sqlite 的单行器。

还有一件事,我使用以下函数很好地执行和打印 SQL 查询:

sql_command子程序大约需要 1 分钟才能执行(在 6.5 MB 文件上),在我看来,这比我预期的要长得多。有没有人有更有效的解决方案?

谢谢!

0 投票
1 回答
698 浏览

perl - 使用 Text::Table 格式化 SQL 查询

下面是将 SQL 查询转储为对齐的文本表格式的代码。

输出符合预期。但在性能方面,处理大约 5MB 大小的输出文件需要大约 30 秒。

在性能方面是否有更好的方法来实现这一目标?

谢谢!

0 投票
1 回答
535 浏览

perl - perl DBI->connect 弹出“没有到主机的路由”虽然我可以选择主机

我有这个 perl 脚本

包装器.pl

当我跑步时

我得到:

我可以 ping 服务器,它也应该接受 5432 上的连接。由于登录凭据错误,我可能会收到此消息吗?

0 投票
1 回答
7970 浏览

oracle - 在 @INC 中找不到模块 DBD::Oracle 的可加载对象:Cygwin

我在 Windows 上使用 cygwin 来编译 perl 模块。我能够通过 cpan 安装 perl DBI 后来我安装了 DBD ,它也说安装成功。

cpan[1]> install DBD::Oracle Going to read '/home/e1sched/.cpan/Metadata' Database was generated on Wed, 24 Apr 2013 12:08:01 GMT DBD::Oracle is up to date (1.60) .

现在,当我执行我的脚本时,我在下面收到此错误。

$ ./invpayhistload.sh 5 50000 Thu, Apr 25, 2013 5:53:31 AM 开始批处理 PPID 7580 install_driver(Oracle) 失败:无法在 @INC 中找到模块 DBD::Oracle 的可加载对象(@INC 包含: /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/ lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/ 5.10 /usr/lib/perl5/site_perl/5.8 .) at (eval 3) line 3 在 (eval 3) line 3 的 require 编译失败。也许 DBD::Oracle 需要的模块尚未完全安装在 /usr /local/batch/bin/invpayhistload.pl 第 33 行

DBD::Oracle 似乎没有正确安装。我尝试了很多次,但结果都是一样的。找路径有问题吗?这是什么@INC?感谢您的回复。