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 38935 게시물 읽기
No. 38935
PL/SQL INSERT 문 질문입니다.
작성자
박주영(vf19)
작성일
2011-10-04 17:54
조회수
4,519

 CREATE OR REPLACE PROCEDURE CREATE_NETWORK(network_name IN VARCHAR2,node_num IN NUMBER) AS 

BEGIN
  SDO_NET.CREATE_LOGICAL_NETWORK(network_name,1,FALSE);
  DBMS_OUTPUT.PUT_LINE(network_name || '_NODE$');  
  FOR cnt IN 1..node_num LOOP
    INSERT INTO network_name || '_NODE$'
    (
     NODE_ID,
     NODE_NAME,
     ACTIVE
    ) 
    VALUES 
    (
     cnt,
     cnt+'',
     'Y'
    );
  END LOOP;
  DBMS_OUTPUT.PUT_LINE('노드 입력 성공'); 
END CREATE_NETWORK;
 
위와 같은 프로시저가 있습니다. 컴파일시 INSERT INTO network_name || '_NODE$' 이 부분에서 누락된 VALUES 키워드 에러가
나는데 PL/SQL 문에서 INSERT 문은 문자열 합치는 테이블 명은 인식을 못하나요? 
테이블명을 받아서 거기다 _NODE$ 라는 문자열을 합친 테이블에 값을 넣어야 하는데 자꾸 에러가 나는
원인을 모르겠습니다.
이 글에 대한 댓글이 총 2건 있습니다.

테이블명이나 필드명은 명시적으로 적어주어야 합니다.

SQL := 'INSERT INTO network_name' || _NODE$ || ' ( NODE_ID .........

EXEC SQL;

 

이런식으로dynamic SQL 을 이용하여 해결할수 있습니다.

1님이 2011-10-05 08:52에 작성한 댓글입니다. Edit

 친절한 답변 감사합니다. ^^.

박주영(vf19)님이 2011-10-05 09:12에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38939pl/sql 최대 열기 커서 수 에러 도움 급합니다. [3]
박주영
2011-10-05
4216
38937댓글의 총 갯수 [2]
서유미
2011-10-05
5900
38936ORA-29275 오라클 캐릭터 셋 관련..... [1]
곽정호
2011-10-04
6074
38935PL/SQL INSERT 문 질문입니다. [2]
박주영
2011-10-04
4519
38934오렌지에서 Trace 설정하는 방법좀 알려주세요 ^^:
정현석
2011-10-04
4859
38933왕초보 질문입니다. ora-01598
minhh
2011-10-04
3675
38932OCCI 라이브러리에서 select후 전체 row값 가져오는방법??
이동희
2011-10-04
3871
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다