如果你的SQL查詢沒有WHERE其他任何地方查詢這樣做只會工作。
例如,如果在查詢中有一個名爲WHERE_LOCATION的字段,這將不起作用。
直接取代SQL查詢:
--YOUR QUERY:
select replace(replace(replace('Select * from haystackwhere id = 3;',
'where', ' where '), 'WHERE', ' WHERE '), 'Where', ' Where ') from dual;
--If you have WHERE encoded as another case, E.G. wHere, modify appropriately.
要使用PL/SQL替換:
DECLARE
CURSOR C1 IS SELECT SQL_FIELD_COLUMN FROM YOURTABLE;
NEW_SQL VARCHAR(1000);
BEGIN
FOR R1 IN C1
LOOP
--WILL NOT WORK IF SQL_FIELD_COLUMN CONTAINS COLUMNS NAMED WHERE_LOCATION, ETC.
--REMEMBER TO Change replacements for other cases, E.G. wHere
--
NEW_SQL := replace(replace(replace(R1.SQL_FIELD_COLUMN,
'where', ' where '), 'WHERE', ' WHERE '), 'Where', ' Where ');
--NOW UPDATE THE TABLE/S CONTAINING YOUR SQL
END LOOP;
END;
謝謝了下來 –