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 3996 게시물 읽기
No. 3996
쿼리 문법 좀..
작성자
호야
작성일
2010-02-08 13:32
조회수
10,090

일반적인 쿼리와 PL/SQL 문법을 섞어 쓸려고 하는데요..

프르그램은 위에서 순차적으로 진행되는 형태입니다.

세미콜론으로 끝나는 부분을 나누어서 쿼리툴에서 처리하면 정상 처리가 되는데,

전체를 수행하면 빨간색 SELECT 부분에서 에러가 납니다.. 무슨 내용인지 당췌모르겠네요.. ㅠㅠ

이렇게 별도 커서나 프로시저로 만들지 않고, 아래처럼 순차적으로 처리하는 것도 가능하지 않은지?

 

BEGIN

------------------------------------------------------------------------

  SELECT 1 AS NUM, '홍길동' AS NAME, '남' SEX
  ;

------------------------------------------------------------------------

  BEGIN

    DECLARE @i INT

    SELECT 1 AS NUM, '홍길동' AS NAME, '남' SEX 
    INTO #명단

    SET @i = 1

    IF @i = 1
    BEGIN
      UPDATE #명단 SET NAME = '아무개' WHERE NUM = @i
    END

  SELECT * FROM #명단

  END

------------------------------------------------------------------------

SELECT 1,1,1;

------------------------------------------------------------------------

END

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

SQL의 생김새를 보아하니 Sybase IQ라는 DBMS를 사용하고 계시군요. 참고로 SYBASE라는 회사가 제공하는 DBMS는 3개 입니다 (ASE, Sybase IQ, ASA). 그리고 Sybase IQ에서 사용하시는 SQL은 PL/SQL이 아니고 WatcomSQL 이라고 합니다.  그리고 지금 올려주신 SQL 문법은 ASE에서 사용하는 T-SQL의 문법인데요. 물론 T-SQL도 Sybase IQ에서 호환이 되지만 가능하면 WatcomSQL을 사용해주셔야 원치않는 부작용이 없을 것입니다.  WatcomSQL은 한문장이 끝났을 때 그 끝을 나타내는 ;을 기술해야 하고요 if 문장은 if then ~ end if 입니다. 자세한 것은 다음 URL을 이용해서 교육자료 다운받아서 참조하세요 http://www.iquser.net/bbs/zboard.php?id=com_download&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=23 

그리고 WatcomSQL에서는 SELECT문장이 하나의 compound statement에서 한번밖에 사용될 수 없으므로 맨처음과 맨마지막에 사용한 SELECT문장은 아마도 debug 용으로 사용한 메시지 인것 같은데요 이럴경우는 Message라는 구문을 이용하여 사용하시면 좋을 듯합니다.

BEGIN
    DECLARE @i INT;

//    SELECT 1 AS NUM, '홍길동' AS NAME, '남' SEX  ;  /* Message 구문으로 변경 */

    SELECT 1 AS NUM, '홍길동' AS NAME, '남' SEX
    INTO #명단;

    SET @i = 1;

    IF @i = 1 then
      UPDATE #명단 SET NAME = '아무개' WHERE NUM = @i;
    END IF;

    SELECT * FROM #명단;

//    SELECT 1,1,1;    /* Message 구문으로 변경 */
END

 

세지아빠(sejiappa)님이 2010-02-09 11:30에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3999union all [1]
왕초보
2010-02-22
7522
3998쿼리 짜는것좀 도와주세요 [2]
최창순
2010-02-18
7499
3997[왕초보]저장된 image 어떻게 확인하는지 알려주세요 [1]
이정
2010-02-12
7074
3996쿼리 문법 좀.. [1]
호야
2010-02-08
10090
3995튜닝 좀 봐주세요. [2]
경아
2010-02-03
7262
3994dbisqlc 로 쿼리 실행하기!! 도와주세요!! [1]
초보
2010-02-02
11025
3993최근글 가져오기.. [1]
양은숙
2010-02-02
7853
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다