我有张桌子
acct_log (
date_created date,
log_desc long
log_key number primary key)在甲骨文12c。
这个表已增长到45 GB。我使用date_created来清除它--每天对7天以上的行进行清除。
这个脚本在过去的21天里失败了,现在已经积累了太多行。
我试图使用alter table acct_log move命令,但它在LONG列上失败了。这对所有其他类型的列都适用于任何表,但不会很长。
有人能帮我吗?我甚至不能用CTAS创建临时表,因为它失败了。
ERROR at line 1:
ORA-00997: illegal use of LONG datatype发布于 2017-01-05 16:55:16
甲骨文有一个专门针对这个问题的工具:to_lob
TO_LOB将列long_column中的长或长原始值转换为LOB值。只能将此函数应用于长或长的原始列,也只能应用于INSERT语句中子查询的选择列表中。
示例
create table foo (a number, b date, c long);
insert into foo values(1, sysdate - 1, 'Parfümök százai, virágok álmai');
insert into foo values(2, sysdate - 2, 'Édeskés, kesernyés, mézédes felejtés');
insert into foo values(3, sysdate - 3, 'Rózsa és leander, karcsú kis üveggel, oh elkábít');
insert into foo values(4, sysdate - 4, 'Mirha és mandula kis helyre bezárva, orgonák, violák titkos kis fiolák');
insert into foo values(5, sysdate - 5, 'Cseppenként, permetként próbálom egyenként úgy elbódít');
commit;
create table bar as select a, b, to_lob(c) as c from foo;结果
SQL> desc bar
Name Null? Type
----------------------------------------- -------- ----------------------------
A NUMBER
B DATE
C CLOBhttps://stackoverflow.com/questions/41484957
复制相似问题