【问题标题】:How to change lots table columns datatypes from one to another in oracle如何在oracle中将地块表列数据类型从一种更改为另一种
【发布时间】:2015-10-06 18:57:37
【问题描述】:

我有一个包含很多 BLOB 类型列的表,我需要将其更改为 nvarchar2。

所以,要更改类型,我可以使用以下脚本:

alter table AUDIT_LOG
modify
   (
        column_name type_name,
        column_name2 type_name2
        -- etc
   );

要获取具有给定数据类型的所有列,我可以使用以下内容:

select column_name, 'NVARCHAR2(4000)'
from all_tab_columns
where table_name = 'TAB_NAME' and data_type = 'BLOB';

但是如何将这两个脚本合二为一呢?

【问题讨论】:

    标签: oracle oracle11g


    【解决方案1】:

    您不能在同一个查询中同时执行DMLDDL 操作。您必须在 PL/SQL 块中使用动态 SQL

    • 创建一个变量并在其中生成整个 alter table 查询。
    • 立即执行

    参考这个,我相信您将能够根据您的要求添加其余的逻辑。

    http://www.java2s.com/Tutorial/Oracle/0440__PL-SQL-Statements/EXECUTEIMMEDIATEdynamicsqltoaltersession.htm

    【讨论】:

      猜你喜欢
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      相关资源
      最近更新 更多