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
운영게시판
최근게시물
Oracle Q&A 41672 게시물 읽기
No. 41672
저장된 컬럼값내의 변수 처리(대입) 문의드립니다.
작성자
부러운달(qwer1234)
작성일
2018-12-21 04:39:47
조회수
512
2가지 질문이 있습니다.
 
모두 DB 내에 저장된 컬럼 값이고, 내용중에 변수가 들어있어 처리를 어떻게 해야할지 고민입니다.
 
-------------------------------
 
# SMS 송신서비스 중에 유형별 SMS 내용을 DB에 저장하고 
 
  해당유형에 따라 문자를 송신하려고 합니다.
 
유형컬럼에 'A' 가 저장되어 있고, 발송내용 컬럼에 내용을 저장할 예정입니다.
 
send_type: 'A'
 
send_comment : '{P1} 님은 {T1} 일에 예약신청이 되었습니다.'
 
A 유형일때 내용을 가져오고 {P1}에 사용자 성명을, {T1}에 예약일자를 대입시키고 싶습니다.
 
-------------------------------
 
# 수식을 DB에 저장하고 저장된 수식을 읽어서 연산을 해야하는데, 이 수식에도 대입시켜야 할 
 
변수들이 있습니다.
 
clac_comment : '{A1} * {B1} / {C1}'
 
각 {A1}, {B1}, {C1} 은 다른 테이블의 컬럼이거나, 컬럼들의 연산을 통한 값 일 수 있습니다.
 
--------------------------------
 
 프로그램에서 하드코딩해서 사용할 수 도 있고, 쿼리에 고정할 수 도 있긴 한데
 
조금 특별한 사정 때문에 DB에 내용을 저장해서 관리해야 해서 계속 알아보고 있는데
 
길이 잘 보이질 않습니다.
 
도움 부탁드립니다.
이 글에 대한 댓글이 총 1건 있습니다.

1. {P1} {T1} 에 값을 대입시키는 것은
  - REPLACE 를 통해 구현하시면 됩니다.
2. {A1} * {B1} / {C1} 에 값을 대입시켜 계산하는 것은
  - 동적쿼리를 이용하거나. (EXECUTE IMMEDIATE)
  - dbms_xmlgen 을 이용하는 방법도 있습니다.


SELECT a1, b1, c1, v, x
     , TO_NUMBER(
       dbms_xmlgen.getxmltype(
       'SELECT ' || x || ' FROM dual'
       ).Extract('//text()')
       ) y
  FROM (SELECT a1, b1, c1, v
             , REPLACE(REPLACE(REPLACE(v
               , '{A1}', a1)
               , '{B1}', b1)
               , '{C1}', c1)
               AS x
          FROM (SELECT 3 a1
                     , 4 b1
                     , 2 c1
                     , '{A1} * {B1} / {C1}' v
                  FROM dual
                )
        )
;

마농(manon94)님이 2018-12-21 08:06:41에 작성한 댓글입니다.
이 댓글은 2018-12-21 08:07:49에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41676오라클 데이터베이스 질문드립니다.
문영모
2018-12-28
564
41675반차(연차) 행 구분 [2]
IT재벌
2018-12-28
673
41673insert문장을 추출 하고 싶습니다.!!! [1]
송영일
2018-12-26
576
41672저장된 컬럼값내의 변수 처리(대입) 문의드립니다. [1]
부러운달
2018-12-21
512
41670오라클에서 채번 관련 문의 드려요 sequence vs max + 1 [2]
소유니
2018-12-20
770
41669쿼리 질문입니다. [1]
사아암
2018-12-19
545
41668프로시저 생성 관련..
권기혁
2018-12-18
513
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.077초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다