PL/SQL'de oturum değişkenini nasıl açıklarım - yalnızca oturumun süresi boyunca devam edecek, veritabanında saklamak zorunda kalmadan nasıl bildiririm?PL/SQL: Oturum değişkenlerini nasıl bildiririm?
cevap
Paket düzeyinde bir değişken oluşturursunuz. Bunu yaparsanız
CREATE OR REPLACE PACKAGE my_package
AS
FUNCTION get_a RETURN NUMBER;
END my_package;
/
CREATE OR REPLACE PACKAGE BODY my_package
AS
a NUMBER(20);
FUNCTION get_a
RETURN NUMBER
IS
BEGIN
RETURN a;
END get_a;
END my_package;
/
sen kadar okumak (ve doğru olarak işlemek) ORA-04068
hataları olmalıdır: Bu minimal bir örnektir. Her bir veritabanı oturumu, a için kendi değerine sahip olacaktır. Sen ile bu deneyebilirsiniz:
SELECT my_package.get_a FROM DUAL;
Seans içinde birden birimler arasında paylaşılan veri depolamak için bir 'kullanıcı tarafından oluşturulan içerik kullanabilirsiniz.
İlk olarak bir bağlam oluşturmak:
CREATE CONTEXT SYS_CONTEXT ('userenv', 'current_schema')|| '_ctx' USING PKG_COMMON
İkinci, sizin bağlam idare edecek bir paket oluşturmak:
CREATE OR REPLACE PACKAGE PKG_COMMON
IS
common_ctx_name CONSTANT VARCHAR2 (60)
:= SYS_CONTEXT ('userenv', 'current_schema')
|| '_ctx';
FUNCTION fcn_get_context_name RETURN VARCHAR2;
PROCEDURE prc_set_context_value (var_name VARCHAR2, var_value NUMBER);
END;
CREATE OR REPLACE PACKAGE BODY PKG_COMMON
IS
FUNCTION fcn_get_context_name
RETURN VARCHAR2
IS
BEGIN
RETURN common_ctx_name;
END;
PROCEDURE prc_set_context_value (var_name VARCHAR2, var_value NUMBER)
IS
BEGIN
DBMS_SESSION.set_context (common_ctx_name, var_name, var_value);
END;
END;
prc_set_context_value daha gelişmiş olabilir, bu sadece bir örnek. Oluşturulan içerik ve paket ile bunları kullanmaya başlayabilirsiniz. prosedür çağrısı
begin
PKG_COMMON.prc_set_context_value('MyVariable', 9000)
end;
kullanarak bir bağlam değişkeni ayarlayın ve her yerde kullanabilirsiniz - her prosedür, paket, fonksiyon veya olay bir görünüm. Ben bağlamı oluşturduğunuzda
CREATE VIEW V_TEST AS
SELECT ID, LOGIN, NAME
FROM USERS
WHERE ROLE_ID = SYS_CONTEXT(PKG_COMMON.FCN_GET_CONTEXT_NAME, 'MyVariable')
fazla bilgi için http://www.psoug.org/reference/sys_context.html
- 1. PLSQL
- 2. Oracle: PLSQL
- 3. Oturum değişkenlerini PHP'de bir etki alanından diğerine nasıl geçiririm
- 4. ADO ile, nasıl bir Oracle PL/SQL bloğu arayabilirim ve giriş/çıkış bağlantı değişkenlerini belirtirim (parametreler?)
- 5. plsql - Oracle koleksiyonlarla seçin
- 6. PLSQL sembolünün anlamı "=>"
- 7. PLSQL Procudure (Oracle)
- 8. Güvenlik: Kullanıcıların oturum değişkenlerini adlandırabilmeleri için yanlış olan ne olabilir?
- 9. Bir sınıf içinde bir yapıyı nasıl bildiririm?
- 10. Bu uygulama için cihaz özelliklerini nasıl bildiririm?
- 11. ListAdapter ile çalışmak içinDatasetChanged() öğesini nasıl bildiririm?
- 12. xjc'yi xs'den geçmemeye nasıl bildiririm: import?
- 13. Dockerfile'ımda birden fazla sürdürücüyü nasıl bildiririm?
- 14. R - Tarihin bir vektörünü nasıl bildiririm? Örneğin
- 15. İki tablo değişkenini aynı yapılarla nasıl bildiririm?
- 16. Bir değişkeni python'da dosya olarak nasıl bildiririm?
- 17. Oturum değişkenlerini şifrelemek için herhangi bir güvenlik avantajı var mı?
- 18. Google Chrome, tarayıcı kapatıldıktan sonra oturum değişkenlerini tutar
- 19. Oturum değişkenlerini izlemek için ASP.NET ile log4net'i kullanma
- 20. Tüm oturum açma/alma/alma değişkenlerini ASP.NET sayfasında yazdırma
- 21. Bir kaçının dışındaki tüm oturum değişkenlerini silmek mümkün mü?
- 22. Bir hata nasıl karşılanır forall plsql
- 23. bir tablo sütununda sağ PLSQL
- 24. Güncelleştirme Apex Tabular formu PLSQL ile
- 25. Bir plsql döngüsü içinde Oracle'da dizeleri ekleme
- 26. PLSQL - İmleç, dinamik sql olarak kullanılamaz
- 27. Bir DependencyProperty öğesini "Diğer" yerine "Görünürlük" kategorisinde nasıl bildiririm?
- 28. C++ sınıf tarafından kullanılacak bir diziyi nasıl bildiririm?
- 29. Farklı Modüllerde kullanmak için boruyu global olarak nasıl bildiririm? Şimdi
- 30. Oracle PLSQL - Yalnızca veritabanı bağlantısını sağla
bkz diyor: ORA-28265: NameSpace izin verilmez 'sys_' ile başlayan. Değişkeni değiştirmeye çalıştım. Ama değer yerine değişken ismi belirler –