Есть ли способ объявить глобальную переменную или константу, которая может быть использована в разделе DECLARE блока и из других мест, таких как C#?Oracle Глобальная константа или переменная?
У меня есть несколько сценариев, которые устанавливают разные состояния в таблице журналов в зависимости от успеха их работы. Такие нас:
UPDATE LOG_TABLE SET STATUS = ''success' WHERE OBJECT_ID = :object_id
Также у нас есть приложение C#, который выполняет определенные операции, которые не могут быть сделаны из Oracle. И это приложение также устанавливает STATUS в соответствии с успехом его операций.
Поскольку некоторые из статусов используются в нескольких сценариях, а в C# я хотел бы определить их только в одном месте. А затем получить доступ и использовать их везде.
Есть ли способ, которым я мог бы объявить что-то похожее на глобальную константу, которые впоследствии могут быть использованы в/SQL блок PL, как это:
GLOBAL ORACLE CONSTANT=> MY_CONSTANT
DECLARE
my_update_script VARCHAR2(300) := 'UPDATE LOG_TABLE SET STATUS = '''|| MY_CONSTANT ||''' WHERE OBJECT_ID = :object_id;
А также быть в состоянии использовать его из C#?
Используйте «Контекстную переменную». Он будет иметь одинаковую ценность во всех сеансах. –
Определите константу в спецификации пакета. Или создать функцию, возвращающую константу (не знаю об эффективности последнего, хотя). – collapsar
@LalitKumarB Я мало знаю о переменной контекста, но из того, что я читаю, если я создаю глобальный контекст приложения, он будет доступен для всей базы данных и всех пользователей, я прав? – Dzyann