我正在尝试使用Pro*C访问TimesTen数据库。在TimesTen中创建表的代码为
create table testtable(id number(4) not null primary key, ename char(10));
我使用Pro*C从这个表中获取数据。当我使用以下SQL:
select * from testtable where ename like 'wxd'
我没有得到结果。但是当我使用这个:
select * from testtable where ename like 'wxd '
得到正确的结果。我必须在字段中填充足够的空间。有没有别的方法可以得到正确的结果?
这不是Pro*C的问题,而是您为列选择的数据类型的特性。CHAR(10)
意味着该字段始终是10个字符宽,即使您插入的值更短。数据库将用空格填充短值,这就是为什么您必须在查询中添加额外的空格。
如果您想要一个可变长度的列,使用VARCHAR(10)
代替
您还可以使用下面的方法,它同时适用于CHAR和VARCHAR列:
select * from testtable where name like 'wxd%'
类似SQL的条件通常有一个通配符