Oracle 相当于 SQLite 的 quote() 函数

Ben*_*oit 3 sqlite oracle query-optimization

有时我想INSERT从数据库表的内容生成语句。

使用 SQLite,我可以做到:

SELECT 'INSERT INTO foo (col1, col2) VALUES (' || quote(col1) || ',' || quote(col2) || ');'
  FROM bar;
Run Code Online (Sandbox Code Playgroud)

使用 Oracle,我必须这样做:

SELECT 'INSERT INTO foo (col1, col2) VALUES (''' || replace(col1, '''', '''''') || ''',''' || replace(col2, '''', '''''') || ''');'
  FROM bar;
Run Code Online (Sandbox Code Playgroud)

此外,它不适用于 NULL 值。

有没有更好的办法?

Ada*_*sch 5

如果您使用 11g,我会使用DBMS_ASSERT.ENQUOTE_LITERAL而不是滚动您自己的。