Некоторые различия между SQL Server и Oracle в использовании Common Table Expressions (CTE):
- Поведение при работе с курсорами. 2 В SQL Server запрос переходит в неявный курсор, который возвращается вызывающей стороне. 2 В Oracle более стандартное поведение: результирующий набор любого запроса, который не направлен в курсор, должен быть направлен в переменные. 2 При направлении в переменные запрос должен возвращать только одну строку. 2
- Использование CTE в подзапросах. 4 В Oracle CTE можно использовать в подзапросах. 4 В SQL Server, по некоторым предположениям, использование CTE в подзапросах имеет ограниченный смысл. 4
- Синтаксис. 5 В Oracle и SQL Server синтаксис CTE в основном одинаковый, но в SQL Server перед оператором WITH нужно ставить точку с запятой (;). 5
В целом CTE поддерживают в обеих системах, и синтаксис CTE в них в основном совпадает, но некоторые свойства могут быть немного разными. 1