先从数据库查出所有NCLOB表和字段名称,然后进行SQL拼接
SELECT
*
FROM
User_Tab_Columns
WHERE
DATA_TYPE='NCLOB'
ORDER BY
TABLE_NAME;
SELECT
*
FROM
AD_APP_PARAM_copy1
WHERE
rownum <=10
--新增一个字段,类型为VARCHAR2 长度4000
ALTER TABLE
AD_PROGRAM ADD FILEDNAME_TMP NVARCHAR2(2000)
--将要改的字段类型Clob的列数据更新到新增的列
UPDATE
AD_PROGRAM
SET
FILEDNAME_TMP=SHORTCUTMENU;
--删除原Clob列
ALTER TABLE
AD_PROGRAM DROP column SHORTCUTMENU;
--将新增列名更改为原来的列名
ALTER TABLE
AD_PROGRAM RENAME column FILEDNAME_TMP TO SHORTCUTMENU;
SELECT
'alter table '|| TABLE_NAME|| ' add FILEDNAME_TMP NVARCHAR2(2000);update '|| TABLE_NAME ||
' set FILEDNAME_TMP='||COLUMN_NAME|| ';alter table '|| TABLE_NAME ||' drop column '||
COLUMN_NAME||';alter table '|| TABLE_NAME ||' rename column FILEDNAME_TMP to '|| COLUMN_NAME||
';'
FROM
User_Tab_Columns
WHERE
DATA_TYPE='