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 3739 게시물 읽기
No. 3739
사이베이스12.7 초보적 질문
작성자
박정재(hihi317)
작성일
2009-07-27 18:05
조회수
7,020

  set wk_proc_cnt = 0;

  open cur_trsn;

  trsn_loop:
  loop
    fetch next cur_trsn into c_tname,
                             c_prog_name,
                             c_sam_cnt,
                             c_load_cnt,
                             c_base_cond,
                       c_add_cond,
                      c_cycl_code;


    set out_sqlstate = sqlstate;
    if out_sqlstate = err_notfound
    then leave trsn_loop
    end if;

   set wk_script = '';
   set wk_script_select = '';
   set wk_script_where = '';

    select string(' select count(*) into c_sel_cnt',
                  ' from ',rtrim(c_tname) )
    into wk_script_select;

    -- Input 조건절(기준년월일) Check
    if c_base_cond <> '' then
       select string(' where ',rtrim(c_base_cond),'= ',
                       char(39),rtrim(in_work_trgt_ymd),char(39) )
        into wk_script_where;
   else
       select string(' where 1 = 1 ')
         into wk_script_where;
    end if;

    -- 추가조건절 추가
   if c_add_cond <> '' then
      select string(wk_script_where,' and ',rtrim(c_add_cond))
        into wk_script_where;
   else
      select string(wk_script_where, ' and 1 = 1 ' )
        into wk_script_where;
   end if;

    -- Script 연결
    select string(rtrim(wk_script_select),rtrim(wk_script_where))
    into wk_script;

   execute immediate wk_script          ------> 이문장 괜찮은건가요?

   사이베이스 12.7입니다. 특별한 error은 않나는데, 데이터 값을 로딩 시키지 못하네요.. 

   execute immediate wk_script : 이부분이 의심이 가서요.. 

   너무 초보적인 질문이라 죄송합니다.

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

안녕 하십니까...

우선 위 질문의 "특별한 error은 않나는데, 데이터 값을 로딩 시키지 못한다는 "
내용에서 syntax 에러가 없다는 가정하에 부족하지만 답변을 달겠습니다.

wk_script라는 변수는 wk_script_select와 wk_script_where 변수를 받습니다.

select string(' select count(*) into c_sel_cnt',
                  ' from ',rtrim(c_tname) )
    into wk_script_select;

 그런데 위 sql 문에서 wk_script_select라는 변수의 select count(*) into c_sel_cnt 로 인해서 데이터에 대한 결과가 c_sel_cnt라는 변수에 할당되어 execute immediate wk_script 명령만 실행시에는 아무런 결과가 보여지지 않을것 같습니다.

로딩된 데이터의 값을 보려면 execute immediate wk_script 실행한 문장 뒤에 select c_sel_cnt 를 주어서 변수를  조회하는 방식으로해야 데이터의 result set 값을 볼수 있을것 같습니다.

그리고 loop의 끝이 질문에 명확히 나오지 않아서
execute immediate의 명령을 실행하는 부분이 loop안에 있는것인지
밖의 것인지 명확하지가 않습니다.

execute immediate의 명령이 loop안에 있으면 c_sel_cnt라는 변수에 계속 다른 데이터 값을 넣어서
결과적으로는 하나의 데이터만 저장이 될거 같습니다.

 만약 여러 데이터의 정보를 조회하여 loop문을 돌려 한번에 where 조건에 
맞는 쿼리를 작성하려는것이 맞다면
temp 테이블을 생성한 후 execute immediate 라는 명령어를 사용하여 insert 한후
temp 테이블을 select 해 보는 것도 생각해 보면 좋을 것 같습니다.

삐잉키님이 2009-07-29 15:01에 작성한 댓글입니다.
이 댓글은 2009-07-29 15:03에 마지막으로 수정되었습니다. Edit

 감사합니다.

 제가 코딩의 일부분만 올려서 알아보시기 힘들었을꺼 같네요..

 문제는 script상의 코볼 문제 였습니다.

 코볼 라이센스가 없어서 그랬던거 였습니다.

 암튼 성실한 답변 감사합니다....
박정재(hihi317)님이 2009-08-03 12:41에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3780TRANSACTION ISOLATION 설정시 오류문제.. [1]
산다라
2009-07-30
6930
3766kill 명령으로 세션이 사라지질 않습니다. [1]
전현욱
2009-07-29
7141
3752error at line 1 value -1436 out of range for destination
choi
2009-07-28
6146
3739사이베이스12.7 초보적 질문 [2]
박정재
2009-07-27
7020
3701프로시져내에서 다른 프로시저를 실행할때요 [1]
초보자
2009-07-21
6704
3663insert시, 날짜등록하려고 하는데.. sysdate가 맞는건가요? [1]
susia
2009-07-16
6974
3656sybase에서 쿼리 돌릴때, distinct 쓸 수 있나요? [1]
susia
2009-07-14
7056
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다