Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks Runtime 18.1 ve üzerini denetleyin
İmleci açar ve sorgusunu ilk satırdan önce konumlandırarak yürütür.
deyimi OPEN bildirimde DECLARE CURSOR tanımlanan sorguyu yürütür ve belirtildiyse parametre işaretçilerini bağlar. Açıldıktan sonra, satırları almak için imleç ile FETCH birlikte kullanılabilir.
Bu deyim yalnızca bileşik deyimi içinde kullanılabilir.
Uyarı
İmleci açarken, varsa TABLE_OR_VIEW_NOT_FOUND veya COLUMN_NOT_FOUND_IN_TABLE gibi anlamsal hatalar ortaya çıkar. İmleci açmak sorgunun yürütülmesini de başlatır ve bu da sorgunun ne kadarının yürütülmesine bağlı olarak DIVIDE_BY_ZERO gibi çalışma zamanı hatalarına neden olabilir.
Sözdizimi
OPEN cursor_name [ USING { constant_expr [ AS param_name ] } [, ...] ]
Parametreler
-
Bildirilen imlecin adı. İmleç, isteğe bağlı olarak dış kapsamdan bir imlece başvurmak için bileşik deyim etiketiyle nitelenebilir (örn.
outer_label.my_cursor). USING { constant_expr [ AS param_name ] } [, ...]İmleç sorgusundaki parametre işaretçilerine değerleri bağlamak için isteğe bağlı yan tümcesi.
- constant_expr: Parametre işaretçisine bağlanmak için sabit ifade (değişmez değer veya değişken). İfade, sorgu tarafından beklenen türe atanabilir olmalıdır.
-
AS param_name: İsteğe bağlı.
Adlandırılmış parametre işaretçileri ()
:param_nameiçin, hangi parametrenin bağlanacağını belirtir. Adsız parametre işaretçileri ()?için belirtilmezse, parametreler konuma bağlıdır.
Notes
Parametre bağlama davranışı ile eşleşir EXECUTE IMMEDIATE:
- Sorgudaki tüm parametre işaretçileri bağlı olmalıdır.
-
Adlandırılmış parametre işaretçileri ()
:nameAS param_nameiçin yan tümcesi bağlamayı belirtir. -
Adsız parametre işaretçileri ()
?için ifadeler belirtilen sırayla bağlanır.
İmlecin sorgusu yürütme sırasında bir hata oluşturursa (bkz . Hata koşulları), imleç kapalı durumda kalır. Kapsamda olmayan bir imlecin açılması CURSOR_NOT_FOUND oluşturur. Zaten açık olan bir imlecin açılması CURSOR_ALREADY_OPEN yükseltir.
Örnekler
-- Open a simple cursor without parameters
> BEGIN
DECLARE total INT;
DECLARE my_cursor CURSOR FOR SELECT sum(id) FROM range(10);
OPEN my_cursor;
FETCH my_cursor INTO total;
VALUES (total);
CLOSE my_cursor;
END;
45
-- Open cursor with positional parameters
> BEGIN
DECLARE total INT;
DECLARE param_cursor CURSOR FOR
SELECT sum(id) FROM range(100) WHERE id BETWEEN ? AND ?;
OPEN param_cursor USING 10, 20;
FETCH param_cursor INTO total;
VALUES (total);
CLOSE param_cursor;
END;
165
-- Open cursor with named parameters
> BEGIN
DECLARE min_val INT;
DECLARE named_cursor CURSOR FOR
SELECT min(id) FROM range(100) WHERE id >= :threshold;
OPEN named_cursor USING 25 AS threshold;
FETCH named_cursor INTO min_val;
VALUES (min_val);
CLOSE named_cursor;
END;
25