Convert/Cast Gupta SQLBase 12 中的 LONG VARCHAR 到 VARCHAR

Convert/Cast LONG VARCHAR to VARCHAR in Gupta SQLBase 12

我正在尝试 convert/cast 使用临时 table.

将 SQLBase LONG VARCHAR 列转换为 VARCHAR 列

正在使用的来源 table 有一个类型为“long varchar”的注释字段列。 我找不到使用 convert/cast 函数的正确语法。

如果我尝试隐式 cast/convert 如下所示,我收到的错误是

Error: 01627 TYP LON Invalid data type (long expected)

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 列。

但要实现您想要的效果,您可以 运行 卸载(table)然后加载(进入新的 Table)。

要查看这些命令的所有语法选项,请转到:SQLBase Books。下载你想要的版本,并阅读 'Language Reference' 手册,特别是 UNLOAD 和 LOAD。如果您的语法正确,这将起作用 - 我以前做过,但太多了,无法涵盖此处的所有选项..

或者,您可以编写一个存储过程(SQLBase 存储过程很棒 - 您可以像在 TD 中一样使用 SAL。如果使用 SQLCommandCentre 则容易编写)从 SQLTalk 执行。 在一个循环中,将 LONG col 读入一个 Long String,然后从 Long String 插入到 varchar col。