MySQL에서는 @를 사용하여 세션 변수에 액세스 할 수 있습니다. 예 초기화 :Oracle 용 MySQL 동등 세션 변수
if (@myVar is not true) then
execute something
오라클 10g에 상응하는 무엇입니까 :
set @myVar = true;
이 코드가 포함 된 일부 트리거?
MySQL에서는 @를 사용하여 세션 변수에 액세스 할 수 있습니다. 예 초기화 :Oracle 용 MySQL 동등 세션 변수
if (@myVar is not true) then
execute something
오라클 10g에 상응하는 무엇입니까 :
set @myVar = true;
이 코드가 포함 된 일부 트리거?
SQL> EXEC DBMS_SESSION.SET_CONTEXT('CLIENTCONTEXT', 'myvar', 'myvalue');
PL/SQL procedure successfully completed
SQL> SELECT SYS_CONTEXT('CLIENTCONTEXT', 'myvar') FROM dual;
SYS_CONTEXT('CLIENTCONTEXT','M
--------------------------------------------------------------------------------
myvalue
패키지 전역 변수는 아마도 같은 트릭을 수행합니다.
CREATE OR REPLACE PACKAGE foo as
myVar BOOLEAN;
END foo;
CREATE OR REPLACE PACKAGE BODY foo AS
BEGIN
MyVar := true;
END foo;
BEGIN
If foo.myVar THEN
dbms_output.put_line ('MyVar is True');
end if;
END;
SYS_CONTEXT를 통해 패키지를 사용하면 몇 가지 캡슐화가 가능하다는 장점이 있습니다.
왜 바인드 변수를 사용하지 않는가? SQL 플러스 :
variable SOME_NUMBER number
exec :SOME_NUMBER := 10
PL/SQL 프로 시저가 성공적으로 오라클 데이터 타입의 모든 종류의
if :SOME_NUMBER = 10 then
do something;
end if;
/
작품을 완성했다.
변수는 다른 곳의 트리거에서 PL \ SQL 외부에서 액세스 할 수 있어야합니다. – Joshua
Java에서 스레드 로컬처럼 동작합니까? – JamesC