最近在做一个项目的时候要求用pro C 写 Batch。而最近我写的那个batch是实现table的partition操作。 一开始我是用下面的这个sql语句的。
ALTER TABLE TEST ADD PARTITION TEST200801
VALUES LESS THAN (ADD_MONTHS(TO_DATE('2008021,'YYYYMM'),'1'))
但是运行的时候总是报 : ORA-14019: partition bound element must be one of: string, datetime or interval literal, number, or MAXVALUE 错误。发现 LESS THAN () 里面如果直接用Date是没有问题的,也就是说这里的分界值是不支持表达式的(譬如这里的ADD_MONTHS)。
另外,这个分界值好像也不能用绑定变量,只能自己拼SQL字符串。
ALTER TABLE TEST ADD PARTITION TEST200801
VALUES LESS THAN (ADD_MONTHS(TO_DATE('2008021,'YYYYMM'),'1'))但是运行的时候总是报 : ORA-14019: partition bound element must be one of: string, datetime or interval literal, number, or MAXVALUE 错误。发现 LESS THAN () 里面如果直接用Date是没有问题的,也就是说这里的分界值是不支持表达式的(譬如这里的ADD_MONTHS)。
另外,这个分界值好像也不能用绑定变量,只能自己拼SQL字符串。
Oracle分区操作挑战
本文介绍了一个使用Pro*C/C++编写Oracle批处理脚本时遇到的问题,即在进行表分区操作时,尝试使用日期表达式作为分区边界导致ORA-14019错误。文中详细解释了错误原因及可能的解决方案。
1399

被折叠的 条评论
为什么被折叠?



