您不应该编写代码来转义字符串。您需要转义字符串的事实意味着您做错了什么。
如果您在
INSERT语句中使用绑定变量,则在有单个单引号的情况下就无需转义字符串。如果您不使用绑定变量,也无需尝试识别字符串中的SQL注入攻击,这是一个巨大的安全问题。而且,您不会强迫Oracle在每次执行查询时都对查询进行解析,这对系统性能至关重要。
如果您要讨论的过程是用PL / SQL编写的,它将自动使用绑定变量。猜测列名,并假设您正在使用序列生成主键,那么您将获得以下内容
CREATE PROCEDURE insert_rtf_clob( p_clob IN NOCOPY CLOB )ASBEGIN INSERT INTO rtf_clob( rtf_clob_id, rtf_clob_value ) VALUES( seq_rtf_clob_id.nextval, p_clob );END;
其他前端语言将具有使用绑定变量的不同方法。例如,如果您正在使用JDBC编写Java,则需要创建一个
PreparedStatement然后调用适当的
setXXX方法,即
PreparedStatement stmt = conn.prepareStatement( "INSERT INTO rtf_clob VALUES( ?, ? )" );stmt.setInt( 1, 1 ); // Set column 1 to a value of 1stmt.setString( 2, someStringVariable ); // Set column 2 to someStringVariablestmt.executeUpdate();



