zoukankan      html  css  js  c++  java
  • ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值

    检查插入的值是否大于该字段数据类型约束的长度。

    这个异常是指,用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如 果是varchar2类型的,当长度超过2000,--4000(最大值)之间的时候,oracle会自动将该字段值转为long型的,然后,插入操作失 败。解决办法是:将此字段的类型改为clob或者blob类型;

    但是将oracle数据库表中的varchar2类型直接改成clob类型会失败,解决办法如下:

    1、new 一个 table

    {

        假设我们有以下的表格:

    Customer 表格

    栏位名称 资料种类
    First_Name char(50)
    Last_Name char(50)
    Address char(50)
    City char(50)
    Country char(25)
    Birth_Date datetime

    若要在这个表格上建立一个包括 First_Name, Last_Name, 和 Country 这三个栏位的视观表,我们就打入,

    CREATE VIEW V_Customer
    AS SELECT First_Name, Last_Name, Country
    FROM Customer;

    现在,我们就有一个叫做 V_Customer 的视观表:

    V_Customer 视观表

    栏位名称 资料种类
    First_Name char(50)
    Last_Name char(50)
    Country

    char(25)
     
     

    }

    2、一般如果表中数据不重要可以清空,跳过步骤1直接执行步骤2

    执行下列代码:

    alter table FILE_MANAGE modify FILEPATH long;

    alter table FILE_MANAGE modify FILEPATH clob;

    在进行此操作之前需要清空表中的数据,请提前备份数据,修改完成后,将数据导入即可。

    实例:

    防止错误发生,先备份数据库。

    以下是更新表 TBL_ALERTLOG  字段 ALERTDESC 为long类型的方法,更新其它表方法一样。

    1.备份原表
    CREATE table TBL_ALERTLOG_BAKS
    AS SELECT  indexid, ALERTLEVEL,ALERTCATEGORY, ALERTDESC,starttime,endtime,isnew,TERMINALID,userid,AlertFlag from  TBL_ALERTLOG;

    2.清空更新的表字段
    update TBL_ALERTLOG set ALERTDESC = null;

    3.修改表字段类型
    alter table TBL_ALERTLOG modify ALERTDESC long;

    在从long转化为clob,对于LONG类型,不管有没有数据存在,
    可以直接修改为CLOB类型

    alter table TBL_ALERTLOG modify ALERTDESC clob;

    4.更新目标字段为备份数据(恢复原数据)
    update  TBL_ALERTLOG  set  ALERTDESC   =  (SELECT ALERTDESC FROM TBL_ALERTLOG_BAKS aa WHERE TBL_ALERTLOG.INDEXID = aa.INDEXID)

    注:clob不需指定长度。

  • 相关阅读:
    523 vue组件化高级 插槽slot:slot基本使用,具名插槽,编译作用域,作用域插槽
    522 vue父子组件的访问方式: $children、$refs、$parent
    521 vue子组件向父组件传递数据
    520 vue父组件向子组件传递:props基本用法,props数据验证,props中的驼峰标识
    在 React 组件中使用 Refs 指南
    Flutter 代码开发规范
    Angular ZoneJS 原理
    vue中$refs, $emit, $on, $once, $off的使用
    详解Js加法运算符
    JavaScript 异常
  • 原文地址:https://www.cnblogs.com/wuxl360/p/7503535.html
Copyright © 2011-2022 走看看