我正在尝试使用临时表将SQLBase-LONG VARCHAR列转换/强制转换为VARCHARColumn。
正在使用的源表具有类型为"的注释字段列;long varchar";。我找不到使用convert/cast函数的正确语法。
如果我尝试隐式转换,我收到的错误是
错误:01627 TYP LON无效数据类型(预期时间较长(
create table SYSADM.TMP_STUDENT_ (
STUDENT_NO integer,
STUDENT_COMMENTS nvarchar(255)
) pctfree 10;
insert into SYSADM.TMP_STUDENT_ (
STUDENT_NO ,
STUDENT_COMMENTS ) select
STUDENT_NO,
STUDENT_COMMENTS
from SYSADM.STUDENT;
grant all on SYSADM.TMP_STUDENT_ to PUBLIC;
不能在子选择中使用LONG VARCHAR列。
但为了实现您想要的,您可以运行UNLOAD(表(,然后运行LOAD(到新表中(。
要查看这些命令的所有语法选项,请转到:SQLBase Book。下载您想要的版本,并阅读"语言参考"手册,特别是UNLOAD和LOAD。如果语法正确,这将起作用——我以前也做过,但内容太多了,无法涵盖这里的所有选项。。
或者,您可以编写一个存储过程(SQLBase存储过程非常棒-您可以像在TD中一样使用SAL。如果您使用SQLCommandCentre,则很容易编写(来从SQLTalk执行。在循环中,将LONG col读取为LONG String,然后从LONG String插入varchar col。