| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 토토 사이트 추천 : 문서 : 9.3 : 내장 토토 사이트 추천 | PostgreSQL : 문서 : 9.3 : PL/배트맨 토토 -배트맨 토토 절차 언어 | 42장. PL/펄 - Perl 절차적 언어 | PostgreSQL : 문서 : 9.3 : 신뢰하고 무지개 토토 수없는 pl/perl | |
글로벌 해시를 사용할 수 있습니다.%_SHARED에 함수 호출 사이에 코드 참조를 포함한 데이터 저장 현재 세션의 수명입니다.
다음은 공유 데이터에 대한 간단한 예입니다.
함수 생성 또는 교체 set_var(이름 텍스트, 값 텍스트) 텍스트를 $$로 반환합니다.
if ($_SHARED$_[0] = $_[1])
'확인'을 반환합니다.
그렇지 않으면
return "공유 변수 $_[0]을 $_[1]로 설정할 수 없습니다.";
다음은 코드를 사용한 약간 더 복잡한 예입니다. 참조:
함수 생성 또는 교체 myfuncs()는 $$로 무효를 반환합니다.
$_SHAREDmyquote = 하위
내 $arg = 교대;
$arg =~ s/(['\\])/\\$1/g;
"'$arg'"를 반환합니다.
;
$$ 언어 plperl;
SELECT myfuncs(); /* 함수를 초기화합니다 */
/* 인용 기능을 사용하는 함수 설정 */
함수 만들기 또는 바꾸기 use_quote(TEXT) 텍스트를 $$로 반환합니다.
내 $text_to_quote = 이동;
내 $qfunc = $_SHAREDmyquote;
return &$qfunc($text_to_quote);
$$ 언어 plperl;
(위 내용을 한 줄로 대체할 수도 있었습니다.$_SHARED내 인용문-($_[0]) 반환;비용으로 가독성.)
보안상의 이유로 PL/Perl은 다음에서 호출되는 함수를 실행합니다. 해당 역할에 대한 별도의 Perl 인터프리터에 하나의 SQL 역할이 있습니다. 이 한 사용자가 우발적이거나 악의적으로 간섭하는 것을 방지합니다. 다른 사용자의 PL/Perl 기능 동작. 각 통역사 자체 값이 있습니다.%_SHARED변수 그리고 다른 글로벌 상태. 따라서 두 개의 PL/Perl 함수는 동일한 값%_SHARED만약 그들이 동일한 SQL 역할에 의해 실행됩니다. 응용 프로그램에서 단일 세션은 여러 SQL 역할에서 코드를 실행합니다(via보안 정의자함수, 사용역할 설정등)을 수행해야 할 수도 있습니다. PL/Perl 함수가 다음을 통해 데이터를 공유할 수 있도록 보장하는 명시적인 단계%_SHARED. 그렇게 하려면 다음 사항을 확인하세요. 통신해야 하는 기능은 동일한 사용자가 소유하고 있으며, 표시해 두세요보안 정의자. 당신은 물론 그러한 기능을 사용하여 아무 것도 할 수 없도록 주의하세요 의도하지 않은.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 내장 함수 | PostgreSQL : 문서 : 9.3 : PL/배트맨 토토 -배트맨 토토 절차 언어 | 신뢰할 수 있는 것과 신뢰할 수 없는 것 PL/펄 |