ANALYZE 테이블 명령어로 프로 시저를 생성 할 수 있습니까?

빅터 수정

이름으로 테이블을 분석하려면 프로 시저를 호출해야합니다. 예 : call schema_name.analyze('table_name'). 절차를 만들었지 만 오류가 발생했습니다.

오류 : 관계 "x"가 존재하지 않습니다.

어떻게 처리할까요?

CREATE OR REPLACE PROCEDURE schema_name.analyze(IN x VARCHAR)
LANGUAGE plpgsql
AS $$
begin
    analyze x;
END;
$$;
애드리안 클라 버

나를 위해 일한 것 :

CREATE OR REPLACE PROCEDURE public.analyze_test(x character varying)
 LANGUAGE plpgsql
AS $procedure$
begin
    EXECUTE 'analyze ' || quote_ident(x);
END;
$procedure$

동적 이름 지정을 사용하고 있기 때문에 EXECUTE. 그런 다음`quote_ident ()는 전달 된 이름을 올바르게 인용합니다.

최신 정보

quote_ident()중요한 이유의 예 :

create table "MixedCase" (id int);

CREATE OR REPLACE PROCEDURE public.analyze_test(x character varying)
 LANGUAGE plpgsql
AS $procedure$
begin
    EXECUTE 'analyze ' || x;
END;
$procedure$

call analyze_test('MixedCase');
ERROR:  relation "mixedcase" does not exist
CONTEXT:  SQL statement "analyze MixedCase"
PL/pgSQL function analyze_test(character varying) line 3 at EXECUTE

CREATE OR REPLACE PROCEDURE public.analyze_test(x character varying)
 LANGUAGE plpgsql
AS $procedure$
begin
    EXECUTE 'analyze ' || quote_ident(x);
END;
$procedure$

call analyze_test('MixedCase');
CALL

업데이트 2

프로 시저 또는 함수를 생성 한 사용자의 권한으로 실행하려면을 사용하십시오 SECURITY DEFINER. 이 페이지 하단의 섹션을 참조하십시오.

https://www.postgresql.org/docs/current/sql-createfunction.html

SECURITY DEFINER 함수를 안전하게 작성

해야 할 것과하지 말아야 할 것.

다음은 원래 기능입니다 SECURITY DEFINER.

CREATE OR REPLACE PROCEDURE public.analyze_test(x character varying)
 LANGUAGE plpgsql SECURITY DEFINER
AS $procedure$
begin
    EXECUTE 'analyze ' || quote_ident(x);
END;
$procedure$

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 인텔 명령어를 ATT로 어떻게 작성할 수 있습니까?

분류에서Dev

mysql에서 매개 변수 테이블을 삭제하는 프로 시저 또는 함수를 생성 할 수 있습니까?

분류에서Dev

jQuery DataTables : 상태 저장에 사용할 테이블 인스턴스 이름 / 테이블 ID를 어떻게 명시 적으로 설정할 수 있습니까?

분류에서Dev

물결표 (~)로 시작하는 테이블 이름으로 임시 스테이지 테이블을 생성 할 수 있습니까?

분류에서Dev

데이터를 저장할 로컬 파일을 생성 할 수 있습니까?

분류에서Dev

DynamoDB : 두 개의 테이블을 생성하지 않고 해시 및 범위로 쿼리 할 수 있습니까?

분류에서Dev

Rust에서 이것을 덜 명령 적으로 어떻게 다시 작성할 수 있습니까?

분류에서Dev

EF Core 3.1의 계층 별 테이블 테이블에서 저장 프로 시저를 호출 할 수 있습니까?

분류에서Dev

이 프로 시저를 어떻게 리팩터링 할 수 있습니까?

분류에서Dev

단일 명령으로 명령 줄에서 PPA를 어떻게 (비) 활성화 할 수 있습니까?

분류에서Dev

단일 명령으로 명령 줄에서 PPA를 어떻게 (비) 활성화 할 수 있습니까?

분류에서Dev

프로그래밍 방식으로 매우 큰 테스트 데이터 테이블을 어떻게 효율적으로 생성 할 수 있습니까?

분류에서Dev

특정 포트에서 수신 대기하는 프로세스를 생성 한 명령을 어떻게 식별 할 수 있습니까?

분류에서Dev

내 Discord 봇이 현재 연결되어있는 음성 채널 수를 명령으로 표시 할 수 있습니까?

분류에서Dev

wc 명령의 결과를 산술 확장으로 어떻게 파이프 할 수 있습니까?

분류에서Dev

테이블을 기반으로 참조하는 모든 테이블을 반환 할 수있는 쿼리 (SQL Server)를 어떻게 작성할 수 있습니까?

분류에서Dev

루프로 생성 된 테이블에서 $ _SESSION 변수를 설정하는 방법이 있습니까?

분류에서Dev

한 테이블에서 여러 테이블로 데이터를 전송할 수 있습니까?이 테이블은 해당 데이터가 포함 된 테이블에서 생성되었습니다.

분류에서Dev

SQL Server에서 임시 테이블을 포함하는 동일한 저장 프로 시저의 여러 인스턴스를 실행할 수 있습니까?

분류에서Dev

Phonegap GPS로 GPRMC 명세서를 어떻게 생성 할 수 있습니까?

분류에서Dev

코어 덤프를 생성 할 때 프로세스를 시작할 수 있습니까?

분류에서Dev

크로스 플랫폼 명령 줄 클라이언트를 어떻게 테스트 할 수 있습니까?

분류에서Dev

배열로 '테이블 생성'및 '입력 값'을 어떻게 할 수 있습니까?

분류에서Dev

특정 속성이 숫자로 끝나야하는 DDL 테이블을 생성 할 수 있습니까?

분류에서Dev

객체 생성자를 배열 또는 해시 테이블에 저장할 수 있습니까?

분류에서Dev

symfony3 콘솔을 사용하여 단일 명령으로 엔티티와 해당 테이블을 생성 할 수 있습니까?

분류에서Dev

테이블 매개 변수를 사용하여 저장 프로 시저를 작성할 때 "스칼라 변수를 선언해야합니다"오류

분류에서Dev

테이블 매개 변수를 사용하여 저장 프로 시저를 작성할 때 "스칼라 변수를 선언해야합니다"오류

분류에서Dev

피벗 테이블이 생성하는 행 수 (Aspose Cells)를 어떻게 확인할 수 있습니까?

Related 관련 기사

  1. 1

    이 인텔 명령어를 ATT로 어떻게 작성할 수 있습니까?

  2. 2

    mysql에서 매개 변수 테이블을 삭제하는 프로 시저 또는 함수를 생성 할 수 있습니까?

  3. 3

    jQuery DataTables : 상태 저장에 사용할 테이블 인스턴스 이름 / 테이블 ID를 어떻게 명시 적으로 설정할 수 있습니까?

  4. 4

    물결표 (~)로 시작하는 테이블 이름으로 임시 스테이지 테이블을 생성 할 수 있습니까?

  5. 5

    데이터를 저장할 로컬 파일을 생성 할 수 있습니까?

  6. 6

    DynamoDB : 두 개의 테이블을 생성하지 않고 해시 및 범위로 쿼리 할 수 있습니까?

  7. 7

    Rust에서 이것을 덜 명령 적으로 어떻게 다시 작성할 수 있습니까?

  8. 8

    EF Core 3.1의 계층 별 테이블 테이블에서 저장 프로 시저를 호출 할 수 있습니까?

  9. 9

    이 프로 시저를 어떻게 리팩터링 할 수 있습니까?

  10. 10

    단일 명령으로 명령 줄에서 PPA를 어떻게 (비) 활성화 할 수 있습니까?

  11. 11

    단일 명령으로 명령 줄에서 PPA를 어떻게 (비) 활성화 할 수 있습니까?

  12. 12

    프로그래밍 방식으로 매우 큰 테스트 데이터 테이블을 어떻게 효율적으로 생성 할 수 있습니까?

  13. 13

    특정 포트에서 수신 대기하는 프로세스를 생성 한 명령을 어떻게 식별 할 수 있습니까?

  14. 14

    내 Discord 봇이 현재 연결되어있는 음성 채널 수를 명령으로 표시 할 수 있습니까?

  15. 15

    wc 명령의 결과를 산술 확장으로 어떻게 파이프 할 수 있습니까?

  16. 16

    테이블을 기반으로 참조하는 모든 테이블을 반환 할 수있는 쿼리 (SQL Server)를 어떻게 작성할 수 있습니까?

  17. 17

    루프로 생성 된 테이블에서 $ _SESSION 변수를 설정하는 방법이 있습니까?

  18. 18

    한 테이블에서 여러 테이블로 데이터를 전송할 수 있습니까?이 테이블은 해당 데이터가 포함 된 테이블에서 생성되었습니다.

  19. 19

    SQL Server에서 임시 테이블을 포함하는 동일한 저장 프로 시저의 여러 인스턴스를 실행할 수 있습니까?

  20. 20

    Phonegap GPS로 GPRMC 명세서를 어떻게 생성 할 수 있습니까?

  21. 21

    코어 덤프를 생성 할 때 프로세스를 시작할 수 있습니까?

  22. 22

    크로스 플랫폼 명령 줄 클라이언트를 어떻게 테스트 할 수 있습니까?

  23. 23

    배열로 '테이블 생성'및 '입력 값'을 어떻게 할 수 있습니까?

  24. 24

    특정 속성이 숫자로 끝나야하는 DDL 테이블을 생성 할 수 있습니까?

  25. 25

    객체 생성자를 배열 또는 해시 테이블에 저장할 수 있습니까?

  26. 26

    symfony3 콘솔을 사용하여 단일 명령으로 엔티티와 해당 테이블을 생성 할 수 있습니까?

  27. 27

    테이블 매개 변수를 사용하여 저장 프로 시저를 작성할 때 "스칼라 변수를 선언해야합니다"오류

  28. 28

    테이블 매개 변수를 사용하여 저장 프로 시저를 작성할 때 "스칼라 변수를 선언해야합니다"오류

  29. 29

    피벗 테이블이 생성하는 행 수 (Aspose Cells)를 어떻게 확인할 수 있습니까?

뜨겁다태그

보관