perls dbi在哪里:Oracle table_info / column_info从哪里获取信息?

时间:2015-01-21 13:46:18

标签: oracle perl dbi

我有一个(至少我认为是这样)简单的任务:按列名,数据类型和长度比较2个表,以验证它们到目前为止具有相同的结构。它应该在现有的perl脚本中完成,该脚本连接到两个不同的数据库。

首先,我只是查询每个数据库user_tab_columns并比较结果。现在我发现了user_tab_columns不活的困难方式,但必须通过分析表(http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4462.htm#REFRN26277)来刷新,我绝对不知道。

describe得到了实际的表定义,但似乎没有通过perls dbi:Oracle,所以我偶然发现了table_info()column_info()方法。 但是他们从哪里获取信息呢?如果他们只是查询*_tab_columns,那么他们就没有用了。

我无法进行测试,因为我还没有设法传递正确的参数。 Dbi Documentation表示它是根据数据库驱动程序。 Oracle DBD Documentation对我来说也没有什么帮助,到目前为止,试验和错误导致获得所有对象或根本没有。

目前我正在考虑通过perl系统调用describe执行sqlplus并解析输出....但是是更好的方法。

修改

如果选中正确的列,则视图user_tab_columns按预期工作(请参阅下面的评论)。

1 个答案:

答案 0 :(得分:4)

您可能没有发现DBD :: Oracle文档特别有用,但您是否考虑使用源代码?

以下是table_info()column_info()的来源。这两个子程序似乎都花在构建SQL语句上。