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

evi*_*ive 5 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文件说,这是根据数据库驱动程序.在甲骨文DBD文档也不是很有益的,以我为好,试错,到目前为止导致让所有物体或什么都没有.

目前,我想执行的describe通过sqlplus通过一个Perl的系统调用和解析输出....但有是一个更好的办法.

编辑:

user_tab_columns如果选中正确的列,视图将按预期工作(请参阅下面的注释).

Dav*_*oss 4

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

这是table_info()column_info()的来源。这两个子例程似乎主要用于构建 SQL 语句。