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
운영게시판
최근게시물
Sybase Q&A 885 게시물 읽기
No. 885
[Q] Function 에서 생성한 Slect 문을 실행해서 결과를 리턴하는 방법..
작성자
조창윤
작성일
2004-03-19 10:30
조회수
4,511

BBB 라는 Function 은 String 을 조합 해서 Select 문을 만들고

AAA 라는 Function 에서 BBB 라는 Function 에서 생성한 Select 을 실행한 후 결과값을

리턴하길 원하는데 잘 되지를 않네요...^

(BBB 라는 Function 에서 만든 select 을 실행한 결과값을 AAA 라는 Function 에서 리턴해야 하는데

BBB 라는 Function 에서 만든 select 문자열을 리턴하네요...--;)

 

-- BBB Function

-- "A1DA" 입력시 결과는 "SELECT char(hextoint('A1')) + char(hextoint('DA'))" 가 리턴된다.

CREATE FUNCTION BBB (data_in CHAR(2000)) RETURNS CHAR(8000)
BEGIN
 DECLARE data_out CHAR(4000);
 DECLARE data1 CHAR(2);
 DECLARE data_length INT;
 DECLARE start_point INT;
 SET data_length = length(data_in);
 SET start_point = 1;
 SET data_out = 'SELECT ';
 WHILE data_length > 1 LOOP
  SET data1 = substring(data_in, start_point, 2);
  SET data_out = data_out + ' char(hextoint(''' + data1 + ''')) ' ;
  SET start_point = start_point + 2;
  SET data_length = data_length - 2;
  IF data_length > 0 THEN
  SET data_out = data_out + ' + ' ;
  END IF;
 END LOOP;
 RETURN data_out;
END

 

-- BBB('A1DA') 에 의한 결과를 리턴하는 Function

CREATE FUNCTION AAA (indata CHAR(2000)) RETURNS CHAR(2000)
BEGIN
 DECLARE outdata CHAR(2000);
 DECLARE data2 CHAR(2000);
 outdata = call BBB(indata);

-- EXECUTE 로 이거저거 해보았는데 잘 안되네요... --;
 return outdata;
END

-- 결과

현재 : select AAA('A1DA') -> "SELECT char(hextoint('A1')) + char(hextoint('DA'))"

원하는 리턴 : SELECT char(hextoint('A1')) + char(hextoint('DA')) 을 실행한 "★"

 

부탁합니다. --; 미리감사드립니다...

 

이 글에 대한 댓글이 총 3건 있습니다.

exec(outdata)

 

하심 될것 같은데

 

 

안되면 안될때의 error message를 알려주세요

지연님이 2004-03-19 11:45에 작성한 댓글입니다. Edit

 

BBB Function 에서

'SELECT char(hextoint(''A1'')) + char(hextoint(''DA''))' 으로 만들어진 outdata 을

return exec(outdata);

하라는 말씀이세요?

 

저는 ASIQ2.5 에서 Interactive SQL 을 사용하고 있는데

ISQL Error 가 나네요...(Syntax Error 가 --;)

 

조창윤님이 2004-03-19 11:56에 작성한 댓글입니다. Edit

SYBASE에서 다이나믹 쿼리가 됬었나요?

l3lue님이 2004-03-22 19:58에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
888getdate() 에 대해서요.. [3]
이지현
2004-03-23
4369
887sybase ASIQ [2]
김성식
2004-03-23
3328
886트리거 내에서요... [2]
초보사이
2004-03-23
3279
885[Q] Function 에서 생성한 Slect 문을 실행해서 결과를 리턴하는 방법.. [3]
조창윤
2004-03-19
4511
884outer join에서요.. [4]
김희정
2004-03-19
4370
883계산결과값이 소숫점인데 decimal로 안되요.. 도와주세요. [2]
2004-03-17
4525
882sybase 관련 질문입니다. (긴급) [3]
김광석
2004-03-16
3330
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다