una ultimos texto separar por obtener los into extraer delimitada comas columns columnas caracteres cadena sql oracle escaping sqlplus

ultimos - Escapando carácter ypersand en SQL cadena



sql server split string delimiter (7)

Estoy intentando consultar una determinada fila por nombre en mi base de datos sql y tiene un ampersand. Traté de establecer un personaje de escape y luego escapar del signo y, por alguna razón, esto no funciona y no estoy seguro de cuál es exactamente mi problema.

Set escape ''/' select * from V1144engine.T_nodes where node_id in( select node2_id from V1144engine.T_edges where node1_id in( select node2_id from V1144engine.T_edges where node1_id in( select node2_id from V1144engine.T_edges where node1_id = (select node_id from V1144engine.T_nodes where node_name = ''Geometric Vectors /& Matrices''))) and edge_type_id = 1) and node_type_id = 1 and node_id in ( select node2_id from V1144engine.T_edges where node1_id = (select node_id from V1144engine.T_nodes where node_name = ''Algebra II'') and edge_type_id = 2);

Aunque esto tiene una solución similar a esta pregunta , los problemas se plantean de manera muy diferente. Pueden terminar teniendo la misma solución, pero eso no significa que las preguntas sean las mismas.


En lugar de

node_name = ''Geometric Vectors /& Matrices''

utilizar

node_name = ''Geometric Vectors '' || chr(38) || '' Matrices''

38 es el código ascii para ampersand, y en esta forma se interpretará como una cadena, nada más. Lo intenté y funcionó.

Otra forma podría ser usar LIKE y un subrayado en lugar del carácter ''&'':

node_name LIKE ''Geometric Vectors _ Matrices''

La posibilidad de que encuentres otro disco también, que es diferente solo en este personaje, es bastante bajo.


Esto también funciona:

select * from mde_product where cfn = ''A3D"&"R01''

usted define & como literal al adjuntar es con doble qoutes "&" en la cadena.


Puedes usar

set define off

Usando esto no pedirá la entrada


directamente desde el libro de fundamentos Oracle sql

SET DEFINE OFF select ''Coda & Sid'' from dual; SET DEFINE ON

cómo uno podría escapar sin establecer definir.



REPLACE(<your xml column>,''&'',chr(38)||''amp;'')


set escape on ... node_name = ''Geometric Vectors /& Matrices'' ...

o alternativamente:

set define off ... node_name = ''Geometric Vectors & Matrices'' ...

El primero le permite usar la barra invertida para escapar de &.

El segundo se apaga y "globalmente" (no es necesario agregar una barra invertida en ningún lugar). Puede volver a activarla set define off y, a partir de esa línea, los signos y símbolos recuperarán su significado especial, por lo que puede desactivarlo para algunas partes del guión y no para otras.