MS SQL Server'da, Saklanmış bir yordamdan sonuçları kontrol etmek istiyorsanız, Management Studio'da aşağıdakileri uygulayabilirim. Sonuçlar bölmesindeki çıktı buna benzer olabilir.Referans imleci döndüren bir Oracle prosedüründen nasıl biçimlendirilmiş sonuçlar elde edersiniz?
ID Title ViewCount Votes
----- ------------------------------------------------- ---------- --------
2165 Indexed View vs Indexes on Table 491 2
5068 SQL Server equivalent to Oracle’s NULLS FIRST 524 3
1261 Benefits Of Using SQL Ordinal Position Notation? 377 2
(3 row(s) affected)
döngüler veya BASKI ifadeleri yazmaya gerek yok.
Ben--ORACLE WAY
DECLARE
OUTPUT MYPACKAGE.refcur_question;
R_OUTPUT MYPACKAGE.r_question;
USER VARCHAR2(20);
BEGIN
dbms_output.enable(10000000);
USER:= 'OMG Ponies';
recordCount := 0;
MYPACKAGE.GETQUESTIONS(p_OUTPUT => OUTPUT,
p_USER=> USER,
) ;
DBMS_OUTPUT.PUT_LINE('ID | Title | ViewCount | Votes');
LOOP
FETCH OUTPUT
INTO R_OUTPUT;
DBMS_OUTPUT.PUT_LINE(R_OUTPUT.QUESTIONID || '|' || R_OUTPUT.TITLE
'|' || R_OUTPUT.VIEWCOUNT '|' || R_OUTPUT.VOTES);
recordCount := recordCount+1;
EXIT WHEN OUTPUT % NOTFOUND;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Record Count:'||recordCount);
CLOSE OUTPUT;
END;
Bu çıkışlar
ID|Title|ViewCount|Votes
2165|Indexed View vs Indexes on Table|491|2
5068|SQL Server equivalent to Oracle’s NULLS FIRST|524|3
1261|Benefits Of Using SQL Ordinal Position Notation?|377|2
Record Count: 3
Yani SQL sürüm 1 hattı vardır ve oracle 18 var gibi SQL Developer aşağıdaki anonim blok yürütmek olabilir Oracle aynı şeyi yapmak için ve çıktı çirkin. Çok fazla sütun varsa ve/veya veri sayısalsa, daha da şiddetlenir.
Ne bana bu konuda garip SQL Geliştirici veya Yönetim stüdyoda birinde bu ifadeyi ...
SELECT
ID,
Title,
ViewCount,
Votes
FROM votes where user = 'OMG Ponies'
yazarsanız sonuçlar oldukça benzer olmasıdır. Bu bana ya bir teknik eksik ya da yanlış bir araç kullandığımı hissettiriyor.
SQL Server sürümü muhtemelen bir işlev değildir. SQL Server'da, sonuçlara benzer şekilde döndürülen saklı yordamlar, yalnızca imlecin bağlı olmayan ifadelerini kullanır. Böyle bir saklı yordamın yürütülmesinin sonuçlarının alınması, istemci tarafında bir 'select' sorgusundan sonuçların alınmasıyla aynıdır. –
Bir gün SQL Server hakkında bilgi almalıyım. Eşdeğeri gibi bir OUTC parametresi ile bir prosedür yerine, bir refcursor döndüren bir işlev olur gibi görünüyor, bu yüzden plan SQL bir sorguda kullanılabilir? –
MyPackage.GetQuestions bir yordamdır. Örneğin. PROSEDÜR GETQUESIONS (OUT MYPACKAGE.refcur_question, IN IN VARCHAR2). Tekniğinizi bağladığımda geçersiz tanımlayıcı hataları alıyorum –