假设您有一个这样的数据库表:
Table t
....
column_a integer
column_b varchar(255)
....
现在,我想存储一个由t.column_b上的名称列表组成的字符串,格式如下(用逗号分隔):
Word A, Word B, Word C...
问题是,可能是字符串大于255个字符的情况,在我的应用程序逻辑中,我不想盲目修剪为255,而是存储可能的最大字数,从而消除了最后一个字超过了大小。此外,我想以这样的方式开发:如果列更改大小,我不想更改我的应用程序。是否可以编写一个检索列的声明大小的SQL查询?或许,我应该使用另一种列类型?
如果相关,我正在使用Informix。
提前致谢。
答案 0 :(得分:1)
DBI定义列的元数据属性,DBD :: Informix实现它们。
对于语句句柄$sth
,您可以使用:
$sth->{PRECISION}->[0]
获取输出中第一列的精度(长度)。
请参阅“声明处理属性”下的perldoc DBI
。
如果您需要知道某些列的类型信息,请编写SELECT语句,准备它,然后分析语句句柄。
因为这是由DBI定义的,所以您将获得与任何驱动程序(DBD :: YourDBMS)相同的行为。