이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 42.4. PL/토토 꽁 머니의 글로벌 데이터버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

41.4. PL/TCL의 글로벌 데이터

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

보안상의 이유로 PL/TCL은 어떤 기능을 수행하는 기능을 실행합니다 해당 역할에 대한 별도의 TCL 통역사에서 하나의 SQL 역할. 이것 한 사용자가 우발적이거나 악의적 인 간섭을 방지합니다. 다른 사용자의 PL/TCL 기능의 동작. 그러한 통역사 모든 것에 대한 자체 값을 가질 것입니다"글로벌"tcl 변수. 따라서, 2 개의 PL/TCL 기능 동일한 글로벌 변수를 공유하는 경우 동일한 SQL 역할에 의해 실행됩니다. 단일 응용 프로그램에서 세션은 여러 SQL 역할에서 코드를 실행합니다 (via보안 정의기함수, 사용역할 설정등) 명시 적 단계를 수행해야 할 수도 있습니다 PL/TCL 기능이 데이터를 공유 할 수 있도록합니다. 그렇게하려면 만들어주십시오 의사 소통 해야하는 기능은 동일하게 소유합니다. 사용자, 표시Security Definer. 너 물론 그러한 기능이 사용될 수 없도록 조심해야합니다. 의도하지 않은 것.

세션에 사용 된 모든 pl/tclu 함수는 동일한 tcl에서 실행됩니다. 통역사, 물론 통역사와는 다릅니다. PL/TCL 기능에 사용됩니다. 따라서 글로벌 데이터가 자동으로 공유됩니다 pl/tclu 함수 사이. 이것은 보안 위험으로 간주되지 않습니다 모든 PL/TCLU 기능이 동일한 신뢰 수준에서 실행되기 때문에 즉, 데이터베이스 수퍼 유행기의 것.

의도하지 않게 PL/TCL 기능을 보호하는 데 도움이됩니다 서로 방해하면 글로벌 배열을 사용할 수 있습니다. 를 통한 각 기능upvar명령. 이 변수의 글로벌 이름은 함수의 내부 이름입니다. 그리고 로컬 이름은GD. 그것은 추천gd지속적으로 사용하십시오 함수의 개인 데이터. 일반 TCL 글로벌 변수 만 사용하십시오 여러분이 여러분이 공유하려는 값에 대해 기능. (gd배열입니다 특정 통역사 내에서만 글로벌이므로 우회하지 않습니다. 위에서 언급 한 보안 제한.)

사용의 예GDSPI_EXECP아래 예제.