토토 사이트 추천 9.3.25 문서 | ||||
---|---|---|---|---|
무지개 토토 : 문서 : 9.3 : pl/perl의 데이터 값 | PostgreSQL : 문서 : 9.3 : PL/배트맨 토토 -배트맨 토토 절차 언어 | CHAPTER 42. PL/PERL - Perl Prossural Language | 메이저 토토 사이트 : 문서 : 9.3 : pl/perl의 글로벌 값 |
Perl 토토 사이트 추천에서 데이터베이스 자체에 대한 액세스 다음 토토 사이트 추천을 통해 수행 :
SPI_EXEC_QUERY
(쿼리[,Max-Rows])SPI_EXEC_QUERYSQL 명령을 실행합니다 해시 배열에 대한 참조로 전체 행 세트를 토토 사이트 추천합니다. 참조.당신은 만 사용해야합니다 결과 세트가 비교적 작은.다음은 쿼리의 예입니다 (select명령) 선택된 최대 수의 숫자 줄 :
$ rv = spi_exec_query ( 'select * from my_table', 5);
이것은 테이블에서 최대 5 행을 토토 사이트 추천합니다my_table. 만약에my_tablea 열my_column, 그 값을 얻을 수 있습니다 From Row$ i다음과 같은 결과의 :
$ foo = $ rv- rows [$ i]- my_column;
a에서 토토 사이트 추천 된 총 행 수select다음과 같이 쿼리에 액세스 할 수 있습니다.
$ nrows = $ rv- processed
다음은 다른 명령 유형을 사용하는 예입니다.
$ query = "my_table 값에 삽입 (1, 'test')"; $ rv = spi_exec_query ($ query);
그런 다음 명령 상태에 액세스 할 수 있습니다 (예 :SPI_OK_INSERT) :
$ res = $ rv- status;
영향을받는 행의 수를 얻으려면 :
$ nrows = $ rv- processed;
여기에 완전한 예가 있습니다 :
테이블 테스트 생성 ( 나는 int, v varchar ); 테스트에 삽입 (i, v) 값 (1, 'First Line'); 테스트에 삽입 (i, v) 값 (2, '두 번째 줄'); 테스트에 삽입 (i, v) 값 (3, '세 번째 줄'); 테스트에 삽입 (i, v) 값 (4, '불멸'); 함수 생성 또는 교체 test_munge () setof test를 $$로 토토 사이트 추천합니다. my $ rv = spi_exec_query ( 'select i, v test;'); 내 $ 상태 = $ rv- status; my $ nrows = $ rv- proceded; foreach my $ rn (0 .. $ nrows -1) 내 $ row = $ rv- rows [$ rn]; 정의 된 경우 $ row- i += 200 ($ row- i); $ row- v = ~ tr/a-za-z/a-za-z/if (정의 ($ row- v)); return_next ($ 행); Undef를 토토 사이트 추천하십시오. $$ 언어 plperl; 선택 *에서 test_munge ();에서 선택하십시오.
SPI_QUERY (명령)
spi_fetchrow (커서)
SPI_CURSOR_CLOSE (커서)
SPI_QUERY및spi_fetchrow행 세트의 쌍으로 함께 작업하십시오 크거나 행을 토토 사이트 추천하려는 경우 그들은 도착합니다.spi_fetchrowWorks전용withSPI_QUERY. 다음 예는 당신의 방법을 보여줍니다 함께 사용하십시오 :
foo_type 유형 생성 (the_num integer, the_text 텍스트); 함수 생성 또는 교체 lota_md5 (정수) foo_type를 $$로 설정합니다. 다이제스트 사용 :: MD5 QW (MD5_HEX); 내 $ file = '/usr/share/dict/words'; 내 $ t = localtime; elog (통지, "$ t에서 $ 파일 열기"); 내 $ fh, '<', $ 파일 # ooh, 파일 액세스 권한입니다! 또는 elog (오류, "읽기를 위해 $ 파일을 열 수 없습니다 : $!"); 내 @words = <$ fh; 닫기 $ FH; $ t = LocalTime; elog (통지, "닫힌 파일 $ 파일 at $ t"); chomp (@words); 내 $ 행; my $ sh = spi_query ( "select * from generate_series (1, $ _ [0])로 b (a)"); while (정의 ($ row = spi_fetchrow ($ sth))) return_next ( the_num = $ row- a, the_text = md5_Hex ($ word [rand @words]) ); 반품; $$ 언어 plperlu; lota_md5 (500)에서 *를 선택하십시오.
정상,spi_fetchrow
돌아올 때까지 반복undef,
더 이상 읽을 행이 없음을 나타냅니다. 커서가 돌아 왔습니다
에 의해SPI_QUERY자동으로 해제됩니다spi_fetchrow
토토 사이트 추천undef. 모든 행을 읽고 싶지 않다면
대신 전화SPI_CURSOR_CLOSE
무료
커서. 그렇게하지 않으면 메모리 누출이 발생합니다.
SPI_PREPARE (명령,
인수 유형)
spi_query_prepared (plan,
인수)
spi_exec_prepared (plan[,속성],인수)
SPI_FreePlan (plan)
SPI_PREPARE, SPI_QUERY_PREPARED, spi_exec_prepared및SPI_FreePlan동일한 기능을 구현하지만 준비된 쿼리를 위해.SPI_PREPARE수락 번호가 매겨진 인수 자리 표시 자 ($ 1, $ 2 등)가있는 쿼리 문자열 그리고 인수 유형의 문자열 목록 :
$ plan = spi_prepare ( '선택 *에서 id $ 1 및 name = $ 2', 테스트에서 선택하십시오. '정수', '텍스트');
일단 쿼리 계획이 전화로 준비되면SPI_PREPARE, 계획은 대신 사용할 수 있습니다 문자열 쿼리, inspi_exec_prepared, 결과는와 동일합니다SPI_EXEC_QUERY또는 inSPI_QUERY_PREPARED정확히 커서를 토토 사이트 추천합니다SPI_QUERY는 나중에 통과 할 수 있습니다 에게spi_fetchrow. 선택적 두 번째 매개 변수spi_exec_prepared는 해시입니다 속성의 참조; 현재 지원되는 유일한 속성은입니다.Limit는 최대 수를 설정합니다 쿼리에 의해 토토 사이트 추천 된 행.
준비된 쿼리의 장점은 사용할 수 있다는 것입니다. 하나 이상의 쿼리 실행을위한 하나의 준비 계획. 계획 후 더 이상 필요하지 않습니다.SPI_FreePlan:
함수 생성 또는 교체 init ()는 void를 $$로 토토 사이트 추천합니다 $ _shared my_plan = spi_prepare ( 'select (now (now () + $ 1) :: 날짜와 같이 날짜', '간격'); $$ 언어 plperl; 함수 생성 또는 교체 add_time (간격) 텍스트를 $$로 토토 사이트 추천합니다. 토토 사이트 추천 spi_exec_prepared ( $ _shared my_plan, $ _ [0] )- rows- [0]- now; $$ 언어 plperl; function doid ()를 작성하거나 바꾸십시오 spi_freeplan ($ _shared my_plan); undef $ _shared my_plan; $$ 언어 plperl; init (); add_time ( '1 일'), add_time ( '2 일'), add_time ( '3 일')을 선택하십시오. select done (); add_time | add_time | add_time ------------+------------+------------ 2005-12-10 | 2005-12-11 | 2005-12-12
매개 변수 첨자SPI_PREPARE는 $ 1, $ 2, $ 3 등을 통해 정의되므로 피하십시오 쉽게 이어질 수있는 이중 인용문으로 쿼리 문자열을 선언합니다. 캐치하기 어려운 버그.
다른 예제는 옵션 매개 변수의 사용법을 보여줍니다spi_exec_prepared:
선택 ID로 테이블 호스트를 작성하십시오 ( '192.168.1.'|| id) :: inet Generate_Series (1,3)에서 ID로; function init_hosts_query () 함수를 만들거나 바꾸십시오 $ _shared plan = spi_prepare ( 'select * from hosts 여기서 주소 << $ 1 ','inet '); $$ 언어 plperl; 함수 생성 또는 교체 토토 사이트 추천 spi_exec_prepared ( $ _shared plan, limit = 2, $ _ [0] )- rows; $$ 언어 plperl; 함수 release_hosts_query ()를 만들거나 바꾸십시오 spi_freeplan ($ _ shared plan); undef $ _shared plan; $$ 언어 plperl; init_hosts_query ()를 선택하십시오. select query_hosts ( '192.168.1.0/30'); 릴리스 릴리 _hosts_query (); query_hosts ------------------ (1,192.168.1.1) (2,192.168.1.2) (2 줄)
elog (레벨, MSG)
로그 또는 오류 메시지를 방출합니다. 가능한 레벨은Debug, log, info, 통지, 경고및오류. 오류오류 조건을 제기합니다. 이 경우 주변 Perl 코드에 갇히지 않으면 오류가 전파됩니다. 호출 쿼리로, 현재 트랜잭션을 일으키거나 삭제되는 차트 조정. 이것은 사실상 동일합니다 perl다이명령. 다른 레벨 만 다른 우선 순위 수준의 메시지를 생성합니다. 메시지 여부 특정 우선 순위는 고객에게보고됩니다. 서버 로그 또는 둘 다에 의해 제어됩니다.log_min_messagesandclient_min_messages구성 변수. 보다범퍼카 토토 : 문서 : 9.3 : 서버 구성자세한 내용은
quote_literal (String)
주어진 문자열을 문자열로 사용하도록 적절하게 인용합니다.
SQL 문 문자열의 리터럴. 토토 사이트 추천 단일 크기 및
백 슬래시가 제대로 두 배가되었습니다. 참고quote_literal
undef 입력에서 undef를 토토 사이트 추천합니다. 만약에
논쟁은 undef 일 수 있습니다,QUOTE_NULLABLE
종종 더 적합합니다.
QUOTE_NULLABLE (String)
주어진 문자열을 문자열로 사용하도록 적절하게 인용합니다. SQL 문 문자열의 리터럴; 또는 논쟁이 undef라면 인용되지 않은 문자열 "null"을 토토 사이트 추천하십시오. 내장 단일 크기 및 백 슬래시가 제대로 두 배가되었습니다.
quote_ident (String)
주어진 문자열을 SQL 문 문자열의 식별자. 인용문은 다음과 같은 경우에만 추가됩니다 필요한 (즉, 문자열에 비 식별자 문자가 포함 된 경우 또는 사례에 따른 것입니다). 임베디드 따옴표가 제대로 두 배가되었습니다.
decode_bytea (String)
내용으로 표시되는 에스카로운 이진 데이터를 토토 사이트 추천합니다. 주어진 문자열.BYTEA인코딩.
encode_bytea (String)
토토 사이트 추천BYTEA인코딩 된 형태의 주어진 문자열의 이진 데이터 내용.
encode_array_literal (배열)
encode_array_literal (배열, Delimiter)
참조 배열의 내용을 문자열로 토토 사이트 추천합니다. 배열 리터럴 형식 (참조섹션 8.15.2). 토토 사이트 추천합니다 인수 값은 배열에 대한 참조가 아닌 경우 변경되지 않습니다. 그만큼 배열 리터럴 기본값의 요소간에 사용되는 구분 기호 ","구분 기자가 지정되지 않았거나 인 경우 undef.
encode_typed_literal (value, typename)
Perl 변수를 전달 된 데이터 유형의 값으로 변환합니다. 두 번째 인수는 이것의 문자열 표현을 토토 사이트 추천합니다. 값. 중첩 어레이 및 복합 값을 올바르게 처리합니다 유형.
encode_array_constructor (배열)
참조 배열의 내용을 문자열로 토토 사이트 추천합니다.
배열 생성자 형식 (참조섹션
4.2.12). 개별 값은를 사용하여 인용합니다.QUOTE_NULLABLE
. 인수 값을 토토 사이트 추천하고
인용QUOTE_NULLABLE
배열에 대한 언급이 아닙니다.
Look_Ike_number (String)
주어진 문자열의 내용이 보이는 경우 진정한 값을 토토 사이트 추천합니다. Perl에 따르면 숫자처럼, 그렇지 않으면 false를 토토 사이트 추천합니다. 보고 논쟁이 undef라면 undef. 선도 및 후행 공간입니다 무시.inf및Infinity숫자로 간주됩니다.
is_array_ref (인수)
주어진 인수가 배열 참조, 즉 인수의 심판이 인 경우배열또는토토 사이트 추천 :: inserver :: array. 거짓을 토토 사이트 추천합니다 그렇지 않으면.
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
데이터 값 pl/perl | PostgreSQL : 문서 : 9.3 : PL/배트맨 토토 -배트맨 토토 절차 언어 | 글로벌 값 pl/perl |