ORA-12899 – Value too large for column string

本文介绍了解决因特殊字符导致Oracle数据库导入失败的方法。通过调整列长度语义、使用特定脚本进行转换,并逐步导出和导入数据来避免错误12899的发生。
有空再翻译吧

If we need to recover a scheme which default LANG is WE8ISO8859P1 and our database is AL32UTF8, the import process crash because the special characters during the conversion pass from one byte to two:

Column 12 LA APLICACION EN ESPA?A DEL CONVENIO DE LA HAYA DE...
IMP-00019: row Rejected due to Oracle error 12899
IMP-00003: ORACLE Error 12899 Encountered
ORA-12899: value too large for column "SCHEME". "TABLE". "ROW" (actual: 51, maximum: 50)

To resolved this problem we’ll need changing columns to CHAR length semantics, following this steps:

  • Export the original database
  • Import only the table definitions into the new database, without inserting the rows (ROWS=N import)
  • Converts columns to CHAR length semantics
  • Import the rows

Export

Export the scheme to the directory MY_BCK, ensure that MY_BCK exists:

SQL> CREATE OR REPLACE DIRECTORY MY_BCK AS '/u01/app/oracle/bck/';

Run the export with SYSTEM user, and datapump utility:

SQL> expdp system/password schemas=SCOTT directory=MY_BCK dumpfile=SCOTT.dmp logfile=expdpSCOTT.log

Or with conventional export system:

SQL> exp system/password owner=SCOTT file=/u01/app/oracle/bck/SCOTT.dmp log=/u01/app/oracle/bck/expdpSCOTT.log

Table definitions

Import only the definitions of the tables, no the rows

SQL> impdp system/password schemas=SCOTT directory=MY_BCK dumpfile=SCOTT.dmp logfile=impdpSCOTT.log content=metadata_only
SQL> imp system/password fromuser=SCOTT touser=SCOTT file=/u01/app/oracle/bck/SCOTT.dmp log=/u01/app/oracle/bck/expdpSCOTT.log ignore=Y ROWS=N

CHAR conversion

To facilitate this process, Oracle created this script. You only need to edit the name of your scheme:

Conn / as sysdba
set feedback off
set verify off
set serveroutput on
set termout on
exec dbms_output.put_line('Starting build select of columns to be altered');
drop table semantics$
/
create table semantics$(s_owner varchar2(40),
s_table_name varchar2(40),
s_column_name varchar2(40),
s_data_type varchar2(40),
s_char_length number)
/
insert into semantics$
select C.owner, C.table_name, C.column_name, C.data_type, C.char_length
from all_tab_columns C, all_tables T
where C.owner = T.owner
and T.owner in
('SCOTT')
-- All Oracle provided users
and C.table_name = T.table_name
and C.char_used = 'B'
-- only need to look for tables who are not yet CHAR semantics.
and T.partitioned != 'YES'
-- exclude partitioned tables
and C.table_name not in (select table_name from all_external_tables)
and C.data_type in ('VARCHAR2', 'CHAR')
-- You can exclude or include tables or shema's as you wish, by adjusting
-- "and T.owner not in" as per your requirements
/
commit
/
declare
cursor c1 is select * from semantics$;
v_statement varchar2(255);
v_nc number(10);
v_nt number(10);
begin
execute immediate
'select count(*) from semantics$' into v_nc;
execute immediate
'select count(distinct s_table_name) from semantics$' into v_nt;
dbms_output.put_line
('ALTERing ' || v_nc || ' columns in ' || v_nt || ' tables');
for r1 in c1 loop
v_statement := 'ALTER TABLE ' || r1.s_owner || '.' || r1.s_table_name;
v_statement := v_statement || ' modify (' || r1.s_column_name || ' ';
v_statement := v_statement || r1.s_data_type || '(' || r1.s_char_length;
v_statement := v_statement || ' CHAR))';
execute immediate v_statement;
end loop;
dbms_output.put_line('Done');
end;
/

Recompile the scheme to validate dependent objects:

SQL> EXECUTE UTL_RECOMP.RECOMP_PARALLEL(4);

Import Data

To finish importing the data scheme

SQL> impdp system/password schemas=SCOTT directory=MY_BCK dumpfile=SCOTT.dmp logfile=impdpSCOTT.log
SQL> imp system/password fromuser=SCOTT touser=SCOTT file=/u01/app/oracle/bck/SCOTT.dmp log=/u01/app/oracle/bck/expdpSCOTT.log ignore=Y

内容概要:本文围绕“空地多无人平台协同路径规划技术”的论文复现展开,重点介绍了基于Matlab的多无人机与地面无人平台协同路径规划的算法实现与仿真研究。研究系统性地整合了无人机三维路径规划、动态避障、多机协同、任务分配及防撞机制等核心技术,结合智能优化算法(如遗传算法、粒子群算法、灰狼优化算法等)与经典路径规划模型(如Dubins路径、A*、RRT等),在复杂威胁环境下实现了高效、安全的协同路径规划。文中提供了完整的Matlab代码支持,便于科研人员进行算法验证、性能对比与二次开发,并强调通过复现高水平学术论文(如EI、SCI期刊及硕博论文)深入掌握该领域的前沿方法与技术路线。; 适合人群:具备一定Matlab编程基础,从事无人机系统、自动化控制、人工智能、路径规划等相关领域研究的研究生、科研人员及工程技术人员,尤其适用于正在开展科研项目、撰写学位论文或希望提升算法实践能力的研究者。; 使用场景及目标:① 复现并深入理解空地协同路径规划领域的高水平论文算法;② 掌握Matlab在多智能体路径规划中的建模、仿真与可视化方法;③ 应用于科研课题、毕业设计、项目申报及算法创新实践中,提升研究的技术深度与工程可行性。; 阅读建议:建议结合文中提供的网盘资源(含完整代码、仿真模型及参考文献资料)同步学习,优先选择与自身研究方向契合的案例进行复现,注重算法原理与代码实现之间的映射关系,并在掌握基础方案后尝试进行参数调优、算法融合或引入新约束条件以实现改进与创新。
内容概要:本文基于Android 15_r17源码深度解析Binder机制的核心原理与实现流程,涵盖Binder驱动交互、服务注册与获取、跨进程通信流程及关键类的作用。文章详细剖析了首个Binder服务ServiceManager的启动与发布过程,阐明其作为上下文管理者通过ioctl设置为Context Manager的机制;系统梳理了ServiceManager.addService和getService的全流程,包括Java层通过BinderProxy到native层BpBinder与IPCThreadState的跨进程调用链;解析了oneway与非oneway调用在事务处理与回复机制上的差异;完整展示了app调用bindService时Binder引用的流转过程,涉及Parcel中flat_binder_object的序列化与反序列化;同时归纳了Binder的特性如句柄管理、死亡通知及异常处理机制。文中还明确指出handle由Binder驱动在创建binder_ref时生成,客户端仅作引用。; 适合人群:具备Android系统开发经验,熟悉C++/JNI及操作系统原理,有一定Framework层开发背景的中高级研发人员; 使用场景及目标:①深入理解Android Binder驱动层与应用层的交互机制;②掌握ServiceManager的初始化与服务注册原理;③分析Binder跨进程调用中数据序列化、句柄管理与线程处理流程;④研究oneway调用与普通调用的差异及异常处理机制; 阅读建议:本文聚焦源码级分析,建议结合Android 15_r17源码同步阅读,重点关注IPCThreadState、ProcessState、BpBinder/BnBinder及Parcel的实现细节,理解Binder在内核与用户空间的数据流转过程。
内容概要:本文系统阐述了SDD(规范驱动开发)与Harness(驾驭式流程管理)相结合的AI全栈开发新范式,旨在解决AI编程助手在复杂工程中因上下文丢失、规范不一致导致的“代码能跑、工程难成”问题。SDD将规范作为唯一真实源,通过定义精确的领域语言(如OpenAPI、Gherkin)约束AI生成行为,确保前后端与测试间的一致性;Harness则提供执行引擎,通过上下文隔离、行为禁令、任务原子化与流程锁步等方式,引导AI在已有高质量参照下进行模式复刻,提升生成代码的可用性与PR保留率。二者共同构建从需求到生产的工程化闭环,实现规范可验证、变更可追溯、运维可反馈的“确定性”交付。; 适合人群:具备全栈开发经验、正在探索AI辅助工程落地的研发工程师、技术负责人及AI工程化实践者;尤其适合面临多模块协同、架构一致性维护难题的中高级开发者。; 使用场景及目标:①在AI辅助下高效生成符合统一架构规范的前后端代码与测试用例;②建立可编译、可测试、可持续演进的全栈自动化开发流水线;③实现从需求变更到生产部署的闭环验证与自动回滚机制;④提升AI生成代码在实际项目中的采纳率与系统稳定性。; 阅读建议:此资源强调工程思维转变,建议结合实际项目尝试将架构决策转化为机器可读规范,并搭建Harness流程控制机制,在实践中体会“约束生成”优于“自由创造”的AI协作新模式。
内容概要:本文档聚焦于“独立售电商购售电策略研究”,通过Python编程实现电力市场中独立售电商的购售电优化决策模型。研究内容涵盖在市场化竞争环境下,售电商如何制定最优购电计划、设计售电定价机制,并有效应对电价波动、负荷不确定性及新能源出力随机性等挑战,以实现利润最大化与风险控制的双重目标。文档深入探讨了多时间尺度调度、不确定性建模、市场竞价机制等核心技术,并利用代码进行仿真验证。此外,文档还提供了大量相关科研主题的参考资料,涉及微电网调度、综合能源系统、虚拟电厂、电动汽车、鲁棒优化等多个前沿方向,展现了广阔的技术应用前景和深厚的学术价值。; 适合人群:具备一定电力系统基础知识和Python编程能力,从事电力市场、能源管理、优化调度等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习并复现独立售电商在电力市场中的购售电决策模型;② 掌握基于Python的电力市场仿真与优化方法;③ 借鉴相关代码实现思路,拓展至微电网、虚拟电厂、需求响应等领域的研究与应用; 阅读建议:此资源以实际代码实现为核心,建议读者结合文中提及的相关研究主题进行系统性学习,重点关注模型构建逻辑与算法实现细节,同时可通过提供的网盘链接获取完整代码资源以便调试与二次开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值