'||' sicuramente funziona in Oracle, anche se non apparentemente SQL Server. (Per coloro che verranno dopo di noi, ecco una stele di rosetta per SQL: SQL Dialects Reference)
Se si sta sistemando script SQL, vorrei prendere in considerazione la seguente soluzione:
PRIMA:
sql-shell-command < sql-file.sql
(sql-file contiene '+' operatori)
DOPO:
ansi-sql-shell-command < sql-file.sql
sed -e 's/||/\+/' < sql-file.sql | ms-sql-shell-command
(sql-file contiene '||' operatori, dovresti convertire i tuoi file)
L'idea è che si inizia con SQL in un formato, e per il caso speciale, si esegue un filtro su di esso per trasformalo nell'altro formato. In teoria, è possibile trasformare tutti i '+' in '||' s, ma dal momento che una buona parte di quelli potrebbe essere numerica-addiziona piuttosto che concatenazione di stringhe, è improbabile che funzioni altrettanto bene.
La complessità del filtro dipende da ciò che si sta facendo. Se hai dati arbitrari nel tuo SQL, dovresti ottenerlo per evitare la sostituzione nelle stringhe. Ma se stai impostando le visualizzazioni, probabilmente andrà bene.
È possibile utilizzare la stessa tecnica nei programmi in cui l'SQL è in stringhe: scrivere una funzione nel programma per trasformarla da una forma all'altra.
perché tutti i database devono avere la stessa sintassi? se fossero tutti uguali, ce ne sarebbe solo uno. i linguaggi di applicazione hanno tutti una sintassi diversa? –
Tutti i compilatori C analizzano la stessa sintassi, perché i parser SQL non dovrebbero fare lo stesso? – ijw
SQL Server e Sybase utilizzano il linguaggio TSQL e Oracle utilizza il linguaggio PL/SQL. TSQL è diverso da PL/SQL. –