Ich bin kürzlich auf die Anforderung gestoßen, dass ich ein Feld „Flag“ aller Tabellen in der Oracle-Datenbank auf „I“ aktualisieren muss. Die Anweisung lautet:
update table_name set flag = 'I'
„I“ wird als Zeichenfolge verwendet, daher muss ich in der Anweisung in einfache Anführungszeichen gesetzt werden.
Da es mehrere Tabellen in der Datenbank gibt, möchte ich keine Anweisungen einzeln schreiben. Ich hoffe, alle Anweisungen direkt über SQL-Anweisungen zu generieren, also habe ich die folgende SQL geschrieben:
select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables
Beim Ausführen zu diesem Zeitpunkt wird „Fehlerbericht: ORA-00923: Das erforderliche FROM-Schlüsselwort wurde nicht gefunden“ angezeigt „I“ aufgrund der Übereinstimmungsbeziehung mit einfachen Anführungszeichen. , I ist keine Zeichenfolge, daher wird ein Fehler gemeldet. Was soll ich also tun, wenn ich ein einfaches Anführungszeichen anzeigen möchte?
Ich habe die Anweisung versucht:
select ''' from dual
wird auch einen Fehler melden. Es stellt sich heraus, dass „'“ als Schlüsselwort verwendet wird Um ein Escape-Zeichen zu verwenden, genau wie bei Javas „“. >
Wie ist das zweite einfache Anführungszeichen „'“ zu verstehen? Ändern Sie es einfach in „“, sodass ich folgende SQL-Anweisung benötige:
select '''' from dual
Das ist OK!
select 'update ' || table_name || ' set flag = ''I''' || ';' from user_tables
Das Obige dreht sich alles um Oracle-Escape-Zeichen. Ich hoffe, dass der Inhalt dieses Artikels für das Studium oder die Arbeit hilfreich sein kann , Sie können eine Nachricht hinterlassen, um zu kommunizieren. Weitere Oracle-Übertragungen finden Sie auf der chinesischen PHP-Website