AHu*_*ist 1 java oracle jdbc prepared-statement database-partitioning
我的情况是我需要在特定时间动态创建数据库分区.我使用Statement
的如下:
alter table table_name split partition default_partition values (' +
id + ') into ( partition " + partitionName + ", partition
default_partition) update indexes
Run Code Online (Sandbox Code Playgroud)
这很好,完全符合我的预期.但是,价值id
来自未经授权的人可能访问的输入.因此,上述语句容易受到SQL注入攻击.我想用一个PreparedStatement
,但我无法弄清楚如何.
问题是oracle中的分区表将" id
"值放入HIGH_VALUE列中,该列为LONG.我认为没有合适的setter来执行此操作(因为String无法工作).我已经尝试过使用各种流消息,a StringReader
和ByteArrayInputStream
值都没有用.我知道LONGs不应再被使用了,但这就是Oracle拥有它的方式所以我无法真正解决它.
当我尝试任何一种方式时,这就是我得到的:
ORA-14308: partition bound element must be one of: string, datetime or interval literal, number, or NULL
Run Code Online (Sandbox Code Playgroud)
Oracle doc有关于如何获取LONG(oracle数据类型,类似于LOB)但不知道如何设置它的良好信息.任何人都可以帮我这个吗?我也研究了JDBC驱动程序的Oracle实现,但它似乎也没有setLONG类型方法.有没有办法可以做到这一点?
归档时间: |
|
查看次数: |
3404 次 |
最近记录: |