Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wstawić ciąg zawierający &

Ciągle o tym zapominam i wracam do tego! Myślę, że najlepszą odpowiedzią jest połączenie odpowiedzi udzielonych do tej pory.

Po pierwsze, &jest prefiksem zmiennej w sqlplus/sqldeveloper, stąd problem - kiedy się pojawia, oczekuje się, że jest częścią nazwy zmiennej.

SET DEFINE OFF zatrzyma interpretację sqlplus iw ten sposób.

Ale co, jeśli musisz użyć zmiennych sqlplus i literał i znaki?

  • Musisz ustawić DEFINE ON, aby zmienne działały
  • I SET ESCAPE ON, aby uniknąć użycia &.

np.

set define on
set escape on

define myvar=/forth

select 'back\\ \& &myvar' as swing from dual;

Produkuje:

old   1: select 'back\\ \& &myvar' from dual
new   1: select 'back\ & /forth' from dual

SWING
--------------
back\ & /forth

Jeśli chcesz użyć innego znaku ucieczki:

set define on
set escape '#'

define myvar=/forth

select 'back\ #& &myvar' as swing from dual;

Po ustawieniu określonego znaku zmiany znaczenia może zostać wyświetlony komunikat „SP2-0272:znak zmiany znaczenia nie może być alfanumeryczny ani odstępem”. To prawdopodobnie oznacza, że ​​masz już zdefiniowany znak ucieczki i rzeczy stają się strasznie samoodnoszące. Czysty sposób na uniknięcie tego problemu polega na pierwszym uruchomieniu ucieczki:

set escape off
set escape '#'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle wstawia z zaznaczenia do tabeli z większą liczbą kolumn

  2. Czy możemy redystrybuować plik tools.jar Oracle?

  3. Odpowiednik funkcji WM_CONCAT w SQL Server

  4. Jak mogę policzyć liczbę słów w ciągu w Oracle?

  5. Jak podłączyć bazę danych Oracle z PHP