Postgres (plpgsql)에서 큰 따옴표를 작은 따옴표로 바꾸기

랜디 뱅크스

파티션 된 테이블에 대해 plpgsql에서 트리거 함수를 작성 중이며 모든 논리가 작동하지만 실제 레코드를 테이블에 삽입하는 데 문제가 있습니다.

변수 참조로 특정 테이블을 참조해야하므로 (내가 이해하는 한) 다음과 EXECUTE같이 명령 을 사용해야합니다 .

EXECUTE 'INSERT INTO ' || tablename || ' VALUES ' || NEW.*;

그러나 이것은 NEWPostgres의 INSERT기능이 이해할 수 있는 방식으로 저장된 레코드의 압축 풀기를 처리하지 않습니다 . 내부에있는 모든 큰 따옴표를 유지하면서 레코드를 문자열로 변환합니다. 즉, 위의 내용은 실행시 다음과 같이 바뀝니다.

INSERT INTO cfs_hgt_05152016_05202016
VALUES ("2016-05-16 00:00:00","2016-05-12 06:00:00",HGT,"1000 mb",9,-71,-38.5371)

이것의 문제는 Postgres가 이러한 값이 이제 큰 따옴표로 인해 열이라고 생각한다는 것입니다.

COPY cfs_hgt_master, line 1: ""2016-05-16 00:00:00","2016-05-12 06:00:00","HGT","1000 mb",9,-71,-38.5371"
ERROR:  column "2016-05-16 00:00:00" does not exist

나는 이것을 다음과 같이 해결하려고 노력했다.

record_text := regexp_replace(NEW.*, '"', '\'', 'gi');
EXECUTE 'INSERT INTO ' || tablename || ' VALUES ' || record_text;

그러나 작은 따옴표를 이스케이프하면 오류가 발생합니다.

psql:cfs_hgt_trigger_function.sql:36: ERROR:  unterminated quoted string at or near "' || record_text;
LINE 30: ...  EXECUTE 'INSERT INTO ' || tablename || ' VALUES ' || recor...
                                                              ^

누군가가 작은 따옴표를 올바르게 이스케이프 처리하는 방법을 알아 내거나 내 작업을 수행하는 다른 방법을 제안 할 수 있습니까?

Erwin Brandstetter

변환하지 마십시오 값을 자신의 텍스트 표현에 전혀 . USING절을EXECUTE 사용하여 값을 전달하십시오 .

그리고 테이블 이름을 올바르게 이스케이프하십시오. format()이를 위해 사용할 수 있습니다 .

EXECUTE format('INSERT INTO %I SELECT $1.*', tablename)
USING NEW;

세부:

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

괄호 안에 큰 따옴표로 묶인 작은 따옴표 바꾸기

분류에서Dev

큰 따옴표를 작은 따옴표로 바꿀 때 터미널에서 sed

분류에서Dev

문자열에서 작은 따옴표와 큰 따옴표 바꾸기

분류에서Dev

전체 XML 파일에서 작은 따옴표 ( ')를 큰 따옴표로 바꾸는 JAVA 코드 조각

분류에서Dev

RegExp이 예제에서 큰 따옴표에서 작은 따옴표를 바꾸는 방법

분류에서Dev

문자열에서 작은 따옴표와 큰 따옴표를 바꾸십시오

분류에서Dev

REGEX를 사용하여 도메인 주변의 작은 따옴표를 큰 따옴표로 바꾸기

분류에서Dev

vb.net을 사용하여 작은 따옴표를 큰 따옴표로 바꾸기

분류에서Dev

JSON 개체 값 작은 따옴표를 큰 따옴표로 바꿉니다.

분류에서Dev

JSON을 Python 사전으로 변환하면 큰 따옴표를 작은 따옴표로 바꾸고 각 큰 따옴표 열기 인스턴스 앞에 "u"를 추가합니다.

분류에서Dev

큰 따옴표를 큰 따옴표로 바꾸십시오.

분류에서Dev

PostgreSQL 12에서 작동하지 않는 큰 작은 따옴표로 바꾸려면 작은 따옴표로 바꾸십시오.

분류에서Dev

R에서 큰 따옴표와 작은 따옴표 (항상)를 바꿀 수 있습니까?

분류에서Dev

XML 본문 텍스트에서 큰 따옴표 / 작은 따옴표를 바꿔야합니까?

분류에서Dev

자바 스크립트에서 작은 따옴표와 큰 따옴표를 사용하는 방법

분류에서Dev

큰 따옴표 내에서 백 슬래시를 슬래시로 바꾸기

분류에서Dev

자바 스크립트는 작은 따옴표를 큰 작은 따옴표 문제로 바꿉니다.

분류에서Dev

Python에서 작은 따옴표 또는 큰 따옴표로 문자열 추출

분류에서Dev

환경 변수를 큰 따옴표로 묶은 문자열에서 작은 따옴표로 변환

분류에서Dev

PHP로 작은 따옴표와 큰 따옴표 사이의 콘텐츠 찾기

분류에서Dev

확장 코드를 큰 따옴표 사용에서 작은 따옴표로 변경

분류에서Dev

Clojure 매크로에서 작은 따옴표 나 큰 따옴표를 어떻게 사용할 수 있습니까?

분류에서Dev

Python, 모든 작은 따옴표 / 큰 따옴표를 새 패턴으로 바꿉니다.

분류에서Dev

큰 따옴표를 작은 따옴표로 대체하기 위해 AngularJS 필터 만들기

분류에서Dev

파일에서 큰 따옴표로 묶인 세 번째 단어 바꾸기

분류에서Dev

vi 편집기에서 삼중 큰 따옴표를 바꾸는 방법

분류에서Dev

파이썬에서 큰 따옴표, 작은 따옴표 및 아포스트로피 표준

분류에서Dev

PHP / JavaScript에서 큰 따옴표 작은 따옴표가 작동하지 않음

분류에서Dev

큰 따옴표, 작은 따옴표를 혼합하는 방법

Related 관련 기사

  1. 1

    괄호 안에 큰 따옴표로 묶인 작은 따옴표 바꾸기

  2. 2

    큰 따옴표를 작은 따옴표로 바꿀 때 터미널에서 sed

  3. 3

    문자열에서 작은 따옴표와 큰 따옴표 바꾸기

  4. 4

    전체 XML 파일에서 작은 따옴표 ( ')를 큰 따옴표로 바꾸는 JAVA 코드 조각

  5. 5

    RegExp이 예제에서 큰 따옴표에서 작은 따옴표를 바꾸는 방법

  6. 6

    문자열에서 작은 따옴표와 큰 따옴표를 바꾸십시오

  7. 7

    REGEX를 사용하여 도메인 주변의 작은 따옴표를 큰 따옴표로 바꾸기

  8. 8

    vb.net을 사용하여 작은 따옴표를 큰 따옴표로 바꾸기

  9. 9

    JSON 개체 값 작은 따옴표를 큰 따옴표로 바꿉니다.

  10. 10

    JSON을 Python 사전으로 변환하면 큰 따옴표를 작은 따옴표로 바꾸고 각 큰 따옴표 열기 인스턴스 앞에 "u"를 추가합니다.

  11. 11

    큰 따옴표를 큰 따옴표로 바꾸십시오.

  12. 12

    PostgreSQL 12에서 작동하지 않는 큰 작은 따옴표로 바꾸려면 작은 따옴표로 바꾸십시오.

  13. 13

    R에서 큰 따옴표와 작은 따옴표 (항상)를 바꿀 수 있습니까?

  14. 14

    XML 본문 텍스트에서 큰 따옴표 / 작은 따옴표를 바꿔야합니까?

  15. 15

    자바 스크립트에서 작은 따옴표와 큰 따옴표를 사용하는 방법

  16. 16

    큰 따옴표 내에서 백 슬래시를 슬래시로 바꾸기

  17. 17

    자바 스크립트는 작은 따옴표를 큰 작은 따옴표 문제로 바꿉니다.

  18. 18

    Python에서 작은 따옴표 또는 큰 따옴표로 문자열 추출

  19. 19

    환경 변수를 큰 따옴표로 묶은 문자열에서 작은 따옴표로 변환

  20. 20

    PHP로 작은 따옴표와 큰 따옴표 사이의 콘텐츠 찾기

  21. 21

    확장 코드를 큰 따옴표 사용에서 작은 따옴표로 변경

  22. 22

    Clojure 매크로에서 작은 따옴표 나 큰 따옴표를 어떻게 사용할 수 있습니까?

  23. 23

    Python, 모든 작은 따옴표 / 큰 따옴표를 새 패턴으로 바꿉니다.

  24. 24

    큰 따옴표를 작은 따옴표로 대체하기 위해 AngularJS 필터 만들기

  25. 25

    파일에서 큰 따옴표로 묶인 세 번째 단어 바꾸기

  26. 26

    vi 편집기에서 삼중 큰 따옴표를 바꾸는 방법

  27. 27

    파이썬에서 큰 따옴표, 작은 따옴표 및 아포스트로피 표준

  28. 28

    PHP / JavaScript에서 큰 따옴표 작은 따옴표가 작동하지 않음

  29. 29

    큰 따옴표, 작은 따옴표를 혼합하는 방법

뜨겁다태그

보관