2012-07-30 35 views

Respuesta

31

para escapar de ella, el doble de las cotizaciones:

INSERT INTO TABLE_A VALUES ('Alex''s Tea Factory'); 
6

En SQL, escapar de una cita de otra cita:

SELECT 'Alex''s Tea Factory' FROM DUAL 
5

puede utilizar ESCAPE como ejemplo dado a continuación

El '_' se usa el carácter comodín para unir exactamente un carácter, mientras que '%' se usa para coincidir con cero o más ocurrencias de cualquier carácter. Estos caracteres se pueden escapar en SQL.

SELECT name FROM emp WHERE id LIKE '%/_%' ESCAPE '/'; 

Las mismas obras dentro de PL/SQL:

if(id like '%/_%' ESCAPE '/') 

esto se aplica sólo a como patrones, por ejemplo, en una inserción que no hay necesidad de escapar _ o%, que se utilizan como caracteres sin formato de todos modos. En cadenas arbitrarias, solo 'necesita ser escapado por' '.

+0

¿Podría mostrar cómo usar esto en el caso de una instrucción INSERT? –

1

Su pregunta implica que está compilando la instrucción INSERT subiendo cadenas al mismo tiempo. Sugiero que esta es una opción pobre, ya que lo deja abierto a los ataques de inyección SQL si las cadenas se derivan de la entrada del usuario. Una mejor opción es usar marcadores de parámetros y vincular los valores a los marcadores. Si busca Oracle parameter markers, probablemente encuentre cierta información para su tecnología de implementación específica (por ejemplo, C# y ADO, Java y JDBC, Ruby y RubyDBI, etc.).

Comparte y disfruta.

0
SELECT q'[Alex's Tea Factory]' FROM DUAL 
+2

[editar] la respuesta y agregar una explicación. – Tushar

Cuestiones relacionadas