ORA-02149与变量赋值

文章作者 100test 发表时间 2008:03:31 11:37:03
来源 100Test.Com百考试题网


最近在工作中由于实际需要将一heap日志表调整为partition的日志表时,发现一个问题,那就是查询分区数据时无法直接按变量来进行查询。过程如下:
insert into t_actionlog_backup
0select * from t_actionlog partition(v_partition_name)


其中v_partition_name是我程序中传入的分区名称变量,结果无论我怎么调试都抛异常“ORA-02149: 指定的分区不存在”。
我直接在sql提示符下执行都是没问题的。见如下的过程:
declare
v_partition_name varchar2(20).
begin
v_partition_name :=’p_2007 1016’.
insert into t_actionlog_backup
0select * from t_actionlog partition(v_partition_name).
end.
ORA-02149: 指定的分区不存在
ORA-06512: 在line 5
SQL>
SQL> insert into t_actionlog_backup
2 0select * from t_actionlog partition(p_20071016).
46 rows inserted
SQL>
没办法,只能用动态sql来解决。
SQL> declare
2 v_partition_name varchar2(20).
3 begin
4 v_partition_name :=’p_20071016’.
5 execute immediate ’insert into t_actionlog_backup 0select * from t_actionlog partition(’||v_partition_name||’)’.
6 end.
7 /
PL/SQL procedure successfully completed
SQL>


相关文章


操作系统常见驱动故障及解决方法
在Windows系统中跟踪IP地址
如何创建Oracle10GEMdbcontrol
oracle的自动启动和关闭
ORA-02149与变量赋值
系统崩溃后,ORACLE9数据库的恢复方法
将图片文件存储到Oracle的存储过程
使用utl_file将oracle数据库中数据写入excel文件
Oracle的X$表系列介绍之-X$KSLLCLA
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛