可以检索 varchar(n) 列的最大声明大小

  • 本文关键字:声明 检索 varchar sql informix
  • 更新时间 :
  • 英文 :


假设你有一个这样的数据库表:

Table t
....
column_a     integer
column_b     varchar(255)
....

现在,我想存储一个由 t.column_b 上的名称列表组成的字符串,格式如下(用逗号分隔):

Word A, Word B, Word C...

问题是,字符串可能大于 255 个字符,在我的应用程序逻辑中,我不想盲目修剪为 255,而是存储尽可能多的单词,消除最后一个超过大小的单词。另外,我想以这样一种方式进行开发,即如果列更改大小,我不想更改我的应用程序。是否可以编写检索列的声明大小的 SQL 查询?或者,也许我应该使用另一种列类型?

如果相关,我正在使用Informix。

提前谢谢。

  1. Informix 会在限制处盲目截断,除非您的数据库是 MODE ANSI。
  2. DBI 定义列的元数据属性,DBD::Informix 实现它们。

    对于语句句柄,$sth ,可以使用:

    $sth->{PRECISION}->[0]
    

    获取输出中第一列的精度(长度)。

请参阅"语句句柄属性"下的perldoc DBI

如果需要知道某些列的类型信息,请编写一个 SELECT 语句,准备它,然后分析语句句柄。

因为这是由DBI定义的,所以你将得到与任何驱动程序(DBD::YourDBMS)相同的行为。

最新更新