44.4. PL/토토의 글로벌 데이터#

때로는 함수에 대한 두 호출 사이에 보유되거나 다른 함수 사이에서 공유되는 일부 전역 데이터를 갖는 것이 유용합니다. 이것은 PL/토토에서 쉽게 수행되지만 이해해야 할 몇 가지 제한 사항이 있습니다.

보안상의 이유로, PL/토토은 해당 역할에 대해 별도의 토토 통역사에서 하나의 SQL 역할로 호출 된 함수를 실행합니다. 이렇게하면 한 사용자가 다른 사용자의 PL/토토 기능의 동작으로 우발적이거나 악의적 인 간섭을 방지합니다.글로벌tcl 변수. 따라서 두 개의 PL/TCL 함수는 동일한 SQL 역할에 의해 실행되는 경우에만 동일한 글로벌 변수를 공유합니다.Security Definer기능, 사용​​역할 설정등) pl/토토 함수가 데이터를 공유 할 수 있도록 명시적인 조치를 취해야 할 수도 있습니다. 그렇게하려면 통신 해야하는 기능이 동일한 사용자가 소유하고 있는지 확인하고 표시하십시오Security Definer. 물론 그러한 기능은 의도하지 않은 일을하는 데 익숙하지 않도록주의해야합니다.

동일한 TCL 통역사에서 세션 실행에 사용 된 모든 PL/TCLU 기능은 PL/TCL 기능에 사용되는 통역사와 구별됩니다. 따라서 글로벌 데이터는 PL/TCLU 기능간에 자동으로 공유됩니다.

10415_10555upvar명령. 이 변수의 글로벌 이름은 함수의 내부 이름이고 로컬 이름은입니다.gd. 권장됩니다gd함수의 지속적인 개인 데이터에 사용하십시오. 여러 기능에서 구체적으로 공유하려는 값에 대해서만 일반 TCL 글로벌 변수를 사용하십시오.gd배열은 특정 통역사 내에서만 글로벌이므로 위에서 언급 한 보안 제한을 우회하지 않습니다.)

사용의 예gdSPI_EXECP아래 예제.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면