当表名与列名在SQL执行之前都是未知的时候,我仍然象平时一样用动态的SQL去操作,结果却总是报错,原来PB中不支持动态的selectblob这样的语句。后来····中间过程就不说了,既浪费自己时间也浪费大家时间。

找到了一个笨办法,原理是:在表与表之间交换数据,不管是什么类型都不需要使用selectblob这样的PB特有语法,直接用SQL就行了。

这里就对selectblob举个例,更新与插入就不讲了,方法类似

1、建立一个中间表,固定表名,如wrblob(int id,blob fblob)

2、先用动态SQL将BLOB读到这个表中,其实是个插入语句:

insert into wrblob(id,fblob) values( id, select fblob from 表名 where主键 = ?);

记住写入wrblob表中的id一定要是唯一值,不会重复的,可以预先得到这样一个值,本句是可以用EXECUTEIMMEDIATE动态执行的

3、然后用selectblob fblob into :lb_blob from wrblob where id = ?; 取得需要读取的值

4、收尾工作,需要删除此行数据,delete from wrblob where id =?;

OK,这样通过一个固定的中间表完成了此项工作

更多相关文章

  1. 利用JAVA动态编译重构系统
  2. 每条sql语句实际上都是一个事物(事物多种类型解读)
  3. sql 语句 更改默认的sql server 数据库
  4. 怎么用SQL语句实现表中的一个字段加1啊??
  5. PHP获取MySQL执行sql语句的查询时间
  6. 删除2行1 Sql语句mysql
  7. 使用IN语句缓慢mysql删除查询
  8. 1.4.6 收集sql语句的执行计划 2
  9. 在SQL SELECT语句中重用别名字段

随机推荐

  1. CJL.0.1.min.js 的是一个什么JS库
  2. JS实现60s倒计时(亲测有效),及span标签如
  3. 在jQuery的$.post中调用函数时,Undefined
  4. 两个svg文件用javascript合并的问题?
  5. Net.Socket实例不会在NodeJS中消失
  6. JS在页面加载时候onload与匿名自调用函数
  7. js闭包与变量
  8. React:更新列表中的一个项目而不重新创建
  9. 带有无线电的JavaScript条件字段不起作用
  10. Sails.js套接字。好的和坏的一面。与sock