在select语句中使用变量作为列名(查询中单引号的问题)

时间:2013-10-25 18:28:18

标签: sql oracle variables

我正在制作一个按摩数据的存储过程(大约80次迭代)。它需要接受一个列名作为从“母亲”程序传递的变量。

  EXECUTE IMMEDIATE 'update AGP_MPI_PROV_IMPORTFULL_001 SET ' || COLUMN_NAME1 || ' = 
  REPLACE('||COLUMN_NAME1||', ' Ii ',' II ') where '|| column_name1 ||' is not null;'

我得到了那个部分 - 但是它正在按摩数据并将'Ii'改为'II' - 这是那些踢我屁股的恶魔单引号。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你必须逃避另一个单引号。

EXECUTE IMMEDIATE 'update AGP_MPI_PROV_IMPORTFULL_001 SET ' || COLUMN_NAME1 || ' = 
   REPLACE('||COLUMN_NAME1||', '' Ii '','' II '') where '|| column_name1 ||' is not null;'