database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9574 게시물 읽기
No. 9574
pgsql 텍스트 조합을 파라미터 변수명으로 인식
작성자
김재성(kjs017327)
작성일
2015-07-20 17:13ⓒ
2015-07-20 19:04ⓜ
조회수
9,685

 안녕하세요.

pgsql 공부를 나름 하고 있는 유저입니다. ^^;;

 

pgsql 에서 text을 조합하여 조합된 파라미터 변수명의 값을 가져오고 싶습니다.

 

CREATE OR REPLACE FUNCTION test (

p_programname varchar

)

RETURNS integer AS

DECLARE
  column_name_txt text := '';
 
BEGIN 
 
select column_name
   into column_name
  from table;
 
 
조회해온 columnname이 progranname이라고 했을때

column_name_txt := p_||column_name;

return column_name_txt;

 

이렇게 해서 실행했을 경우 p_programname 값을 p_||column_name 으로 들어가도록 할 수 있을까요?

 

select test('gogo') ===> gogo

 
즉 조합된 문자가 변수명으로 인식하도록 할 수 있는가 입니다..
 
설명이 어려운가요 ㅠㅠ
 
이 글에 대한 댓글이 총 2건 있습니다.

-- 즉 조합된 문자가 변수명으로 인식하도록 할 수 있는가 입니다..

 

할 수 없읍니다.

초보대왕님이 2015-07-20 21:33에 작성한 댓글입니다. Edit

초보대왕님 말처럼 프로그래밍 구조로는 절대 불가능합니다.

일부 Script 언어에서는 변수명 자체를 Control 할 수 있는 기능이 있지만,

Compile 언어에서의 변수명은 "사람이 식별하기 편리한" 메모리 주소(또는 레지스터)를 의미할 뿐입니다.

음. 하지만 약간의 트릭을 이용하면 비슷한 결과를 얻을 수 있는데요.

이 방법은, PL/pgSQL에서 global variable을 제공하지 않아서 대신 사용하는 방법이기도 합니다.

바로 "Key", "Value" 컬럼으로 이루어진 임시 테이블을 만들고,

거기에 "Key" 에 해당하는 변수명으로 값을 넣은 후에, 향후 Select를 통하여, 접근하는 방법입니다.

도움이 된다면 좋겠네요.

 

아싸가오리님이 2015-07-22 10:07에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
9578DB버전 마법의 블록 문제.. [1]
철강새
2015-08-04
10073
9576update 쿼리에서 limit 사용 쿼리 질문드립니다. [1]
lyae
2015-07-29
9726
9575커질때로 커져버린 데이터의 검색속도 향상법 문의드려요. [4]
김현진
2015-07-28
11068
9574pgsql 텍스트 조합을 파라미터 변수명으로 인식 [2]
김재성
2015-07-20
9685
9573return 타입 문제점.. [2]
e도전
2015-07-14
10762
9572undefined symbol에 관해서 [5]
상록수
2015-07-13
10334
9571text 구조체 파라미터 메모리 할당 후 반환 방법 [1]
초보DBA
2015-07-13
9823
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다