Tengo un script SQL que crea un paquete con un comentario que contiene un ampersand (&). Cuando ejecuto el script desde SQL Plus, se me pide que ingrese un valor sustituto para la cadena que comienza con &. ¿Cómo desactivo esta característica para que SQL Plus ignore el signo?¿Cómo ignoro ampersands en un script SQL que se ejecuta desde SQL Plus?
Respuesta
Esto puede funcionar para usted:
set define off
lo contrario, el signo tiene que ser al final de una cadena,
'StackOverflow &' || ' you'
EDIT: yo era clic-feliz al guardar ... Este se hizo referencia desde un blog.
De acuerdo con this nice FAQ hay un par de soluciones.
También puede escapar del signo y con el carácter de barra diagonal inversa \
si puede modificar el comentario.
El escape de barra diagonal inversa no funciona en SQL * Plus o SQLDeveloper –
@JimTough Lo hace después de activarlo con 'set escape on' –
Si a veces usa variables de sustitución, es posible que no desee desactivar la definición. En estos casos, puede convertir el signo y su equivalente numérico como en || Chr(38) ||
o anexarlo como un solo carácter como en || '&' ||
.
El escenario específico es un paquete cuya fuente incluye un símbolo comercial en un comentario. No veo cómo usaría la concatenación o la sustitución para esto. – JoshL
JoshL, está en lo correcto Acabo de enumerar esto para que esté completo. Está relacionado con tu pregunta, aunque no responde directamente a tu pregunta específica. –
Realmente me ayudó. –
resolví con el código de abajo:
set escape on
y poner un \ lado & en la izquierda 'value_\&_intert'
Att
Esto funcionó para mí. Estaba usando el comando 'comment on column tablename.columnname is 'war' || chr (38) || 'peace'' pero me estaba dando el error' ORA-01780: string literal required'. – mrswadge
Puede establecer el carácter especial, que se buscó después de la ejecución de un script, a otro valor mediante el uso de SET DEFINE <1_CHARACTER>
Por defecto, el DEFI NE función en sí está en, y se establece en &
Se puede apagar - como ya se ha mencionado - pero se puede evitar, así, mediante el establecimiento a un valor diferente. Sé muy consciente de a qué signo lo configuraste. En el siguiente ejemplo, elegí el carácter #, pero esa elección es solo un ejemplo.
SQL> select '&var_ampersand #var_hash' from dual;
Enter value for var_ampersand: a value
'AVALUE#VAR_HASH'
-----------------
a value #var_hash
SQL> set define #
SQL> r
1* select '&var_ampersand #var_hash' from dual
Enter value for var_hash: another value
'&VAR_AMPERSANDANOTHERVALUE'
----------------------------
&var_ampersand another value
SQL>
Recientemente he usado este enfoque. Me gusta, ya que no requiere que modifique el contenido de mis paquetes PL/SQL. – Drumbeg
conjunto definen fuera < - Esta es la mejor solución que encontré
También probé ...
conjunto definen}
pude insertar varios registros que contienen caracteres ampersand '&' pero no puedo usar el caracter '}' en el texto Así que decidí usar "definir definición desactivada" y todo funciona como debería.
- 1. SQL * Plus no ejecuta scripts SQL que SQL Developer hace
- 2. La consulta tarda 4800x más cuando se ejecuta desde el programa C++ que desde SQL Plus
- 3. ¿Cómo ejecutas SQL desde un script bash?
- 4. ¿Cómo llamar a un script SQL desde otro script SQL?
- 5. Cómo ejecutar un script .sql desde bash
- 6. iBatis se ejecuta sql
- 7. ¿Cómo ejecutar el procedimiento almacenado desde SQL Plus?
- 8. ¿Cómo se usa sql * plus en el script de comandos de Windows para controlar el flujo?
- 9. ¿Cómo puedo emitir un solo comando desde la línea de comando a través de sql plus?
- 10. SQL * Plus historial bajo Linux
- 11. SQL Plus no muestra Inglés
- 12. cuenta scott bloqueada en SQL Plus
- 13. iBatis, spring, cómo registrar el sql que se ejecuta?
- 14. USE DATABASE en SQL PLUS ORACLE 11gr1
- 15. ¿Qué significa "2" en SQL * Plus?
- 16. ¿Cómo devolver un conjunto de resultados/cursor desde un bloque anónimo Oracle PL/SQL que ejecuta SQL dinámico?
- 17. Mysql: ¿Cómo llamar al archivo de script sql desde otro archivo de script sql?
- 18. El procedimiento almacenado llamado desde C# se ejecuta 6 veces más que desde SQL Management studio
- 19. En Django, cómo crear tablas desde un archivo SQL cuando se ejecuta syncdb
- 20. ¿Cómo se ejecuta exactamente un script PHP?
- 21. oracle SQL plus cómo finalizar el comando en el archivo SQL?
- 22. La consulta del SQL Server se ejecuta más despacio desde ADO.NET que en SSMS
- 23. Cómo obtener Oracle create table statement en SQL * Plus
- 24. ¿Cuál es su PRIMER comando SQL que se ejecuta para solucionar el rendimiento del Servidor SQL?
- 25. ¿Por qué SQL * Plus se compromete al salir?
- 26. SQLite - Ejecuta el script SQL de varias líneas desde el archivo?
- 27. ¿Cómo ejecutar un script SQL en un archivo MDF?
- 28. Llamar a un script desde un programa setuid root C - script no se ejecuta como root
- 29. Cómo ejecutar un script sql usando C#
- 30. ejecutar un archivo de script sql desde cx_oracle?
También puede especificar esto en el archivo de configuración de perfil de sitio glogin.sql o en el archivo de configuración de perfil de usuario login.sql –
Esta es la solución más simple si no está interesado en las variables de sustitución. – Drumbeg