我试图从长列插入varchar2列.这是下面的例子,TEXT.TEXT_COL = VARCHAR2(4000)
和NOTE.TEXT_NOTE = LONG.
INSERT INTO TEXT(ROW_ID, TEXT_COL)
SELECT 1, TEXT_NOTE FROM NOTE;
Run Code Online (Sandbox Code Playgroud)
当我运行上面的SQL我得到错误
SQL错误:ORA-00997:非法使用LONG数据类型
我也用过TO_LOB(),但仍然是同样的错误.
是否有任何功能只是简单地转换long并放入其中varchar2.让我知道你的想法.
小智 7
如果有某些限制,则无法使用单个语句转换long为varchar2立即使用单个语句long.
您可以创建临时表或使用PL/SQL代码来解决您的问题:
临时表:
CREATE TABLE TABLE2 AS SELECT TO_LOB(COLUMN1) COLUMN FROM TABLE1;
PL/SQL代码:
DECLARE
VAR1 LONG;
VAR2 VARCHAR2(4000);
BEGIN
SELECT TEXT INTO VAR1 FROM USER_VIEWS WHERE ROWNUM = 1;
VAR2 := SUBSTR(VAR1, 1, 4000);
DBMS_OUTPUT.PUT_LINE(VAR2);
END;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
48795 次 |
| 最近记录: |