2010-07-26 22 views
5

Son zamanlarda CTE'leri SQL Server'da öğrendim ve PL/SQL'de kullanmaya çalışıyorum. Bununla birlikte, bunun avantajlı faydalarına ihtiyacım yok, ancak bir görünüm oluşturmak ve sorgu performansını geliştirmek için kullanmak istiyorum. Sadece hangi kodun benzer olabileceğine dair bir yön arıyorum.Ortak Tablo Deyimleri gibi bir şey PL/SQL'de var mı?

+0

Bu SQL, PL/SQL değil. –

cevap

11

Oracle bu alt sorgu faktoring olarak bilinir ve bu SQL Server afaik olduğu gibi aynı şekilde çalışır:

with cte as (select * from emp) 
select * from cte join dept on dept.deptno = cte.deptno; 

SELECT documentation Bkz "factoring" için arama.

+8

+1: 9i'den beri destekleniyor, Alt sorgu faktörü, 11g'ye kadar (şimdi ANSI olan) özyinelemeyi desteklemedi çünkü Oracle, CONNECT BY sözdizimini kullanarak hiyerarşik sorguları zaten destekledi ... PostgreSQL sözdizimini desteklemeye başladığında bunu hatırlamıyorum, büyük olasılıkla v8.x. Ancak CTE'ler/Alt Sorgu Faktoringi, sorgulama performansını iyileştirmez, sadece türetilmiş tablolar/satır içi görünümler için farklı sözdizimi. –

+1

Çok teşekkürler. Neden neden olduğunu açıklayacağım Oracle 8i kullanıyorum. Yardımı takdir ediyorum! –

+1

'with' deyiminin yinelemeli işlevi 11g R2'ye kadar desteklenmedi. (Mevcut değil 11g R1.) Bkz .: http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/wnsql.htm#sthref6 –

İlgili konular