개발공작소
728x90
article thumbnail
[Postgresql] SQL Error [42601]: 오류: 쿼리에 결과 데이터의 대상이 없음 에러 해결방법
데이터베이스/Postgresql 2024. 4. 12. 19:05

LOOP문 내에서 프로시저를 호출하는데, 계속 에러가 발생하길래 확인을 하면서 많은 시간을 날렸다.. 간단한거였는데.. 그래서 정리해봄.. 에러내용 SQL Error [42601]: 오류: 쿼리에 결과 데이터의 대상이 없음 Hint: SELECT의 결과를 취소하려면 대신 PERFORM을 사용하십시오. Where: PL/pgSQL 함수 "dkasjmp.duplicate_sj_safe_child(text,text,text,text,text)" 의 17번째 SQL 문 프로시저 쿼리문 CREATE OR REPLACE FUNCTION public.my_procedure(target_num text) RETURNS integer LANGUAGE plpgsql AS $function$ declare rec RECOR..

[Postgresql] 프로시저(Procedure) : 테이블 생성 프로시저를 만들어보자.
데이터베이스/Postgresql 2022. 12. 13. 12:52

이번에 프로젝트를 하면서 테이블을 생성하는 프로시저를 만들 일이 있어서 한번 작성해본다. Postgresql : 테이블 생성 및 삭제 프로시저 작성 샘플코드 CREATE OR REPLACE PROCEDURE 스키마.프로시저명() LANGUAGE plpgsql AS $procedure$ begin execute 'DROP TABLE IF EXISTS 스키마.테이블명 CASCADE'; execute 'CREATE TABLE IF NOT EXISTE 스키마.테이블명 ( my_id varchar(20) NOT NULL, my_pwd numeric(20) NOT NULL, my_name varchar(20) NOT NULL )'; END; $procedure$ ; 위는 진짜 간단하게 테이블을 CREATE하고 DR..

[Postgresql] quote_ident / quote_literal 함수 사용방법 : Postgresql에서 쌍따옴표/홑따옴표 사용하는 방법
데이터베이스/Postgresql 2022. 11. 18. 21:35

Postgresql를 사용하다보면 테이블명이나 컬럼명, Value값에 쌍따옴표나 홑따옴표를 넣어줘야 할 일이 있다 그럴때 사용할 수 있는 함수가 quote_ident와 quote_literal이다. 각 사용법에 대해 알아보자. quote_ident함수를 이용한 쌍따옴표 표기방법 사용방법 quote_ident(value); 'CREATE TABLE my_schema.' || quote_ident(my_table); 결과 "value" CREATE TABLE my_schema."my_table" 이렇게 쌍따옴표로 감싸준다.. 그럼 굳이 이 함수를 쓰는 이유가 있을까? 있다. 하드코딩이라면 문제 없지만 프로시저/함수 생성시에 테이블명이나 컬럼명을 파라메터로 받아온다고 하면, 또 대문자가 포함되어 있다고 하면 ..

article thumbnail
[Postgres] 계층형 쿼리에 대한 정리 ( RECURSIVE )

오늘은 카테고리와 같은 기능을 구현할 때 쓰이는 계층형 쿼리에 대해 알아보자. Postgresql에서는 데이터의 트리구조(계층)를 표현하기 위해서 RECURSIVE 키워드를 통해 재귀적인 쿼리를 사용한다고 한다. 여기서 재귀란 어떠한 것을 정의할 때 자기자신을 참조한다는 의미이다. 중요한 건 아니니 바로 계층형 쿼리를 통해 트리구조를 만들어보자. 샘플 테이블 생성 CREATE TABLE RECURSIVE_BOOK( BOOK_ID INTEGER NOT NULL, PARENT_ID INTEGER, BOOK_NAME CHARACTER VARYING(20) NOT NULL, BOOK_QTY INTEGER, CONSTRAINT BOOK_KEY PRIMARY KEY (BOOK_ID)); 샘플 데이터 적재 INSER..

article thumbnail
[Postgresql] Replace를 여러개 사용해 값을 치환 해보자. ( REGEXP_REPLACE )
데이터베이스/Postgresql 2022. 4. 28. 12:19

기본 문법 SELECT REGEXP_REPLACE([컬럼명], '[변경하고 싶은 값1]|[변경하고 싶은 값2]', [변경된 값]) AS [컬럼명] FROM [테이블명] 예제 select REGEXP_REPLACE(user_name , '둘리|독산|성', '###') from public.JOINTABLE; JOINTABLE에서 user_name 컬럼의 속성이 둘리,독산,성 인 녀석들을 전부 ###으로 변경해줌 왼쪽은 기본 select이고, 오른쪽은 REGEXP_REPLACE를 활용한 위의 쿼리문을 실행한 결과 근데 하다보니, 뭐가 문제인지는 모르겠지만, 영어인 녀석들은 REGEXP_REPLACE 함수가 제대로 먹지 않음.. 그래서 첫번째 값은 제대로 변경이 되는데 | 다음에 있는 두번째 값들은 변경이 되..

article thumbnail
[Postgresql] DBeaver 에러 : Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. Connection refused: connect Connection refused: connect
데이터베이스/Postgresql 2022. 4. 19. 21:23

오늘 postgresql 함수 좀 테스트 해보려고 오랜만에 DBeaver를 켰는데.. 다음과 같은 에러가 떴다. Connection to localhost:5433 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. 그래서 왜 그런가... 한 10분 찾아보다가, 서비스에서 postgresql-x64-14가 중지되어 있던 것을 발견. 실행해주면 되겠지? 라는 생각에 실행을 해줬는데. 실행이 안된다.. 그래서 또 뭐지 3분 고민하다가, psql로 직접 들어가보기로 했다. 어디서 많이 본 에러다. 며칠전에 postGis가 안되서 "libintl-9.dll" 파일을 ..

728x90