execute immediate 명령을 사용하여 테이블을 만드는 것은 좋지 않지만 연기하기 전에 사용자에게 두 가지 정보를 묻는 테이블을 만들어야한다는 것을 알고 있습니다. 현재 내가 가지고 :execute immediate 문에 기본값이있는 테이블 만들기
는DECLARE
TEST_NAME VARCHAR2(200);
TEST_VERSION VARCHAR2(200);
BEGIN
TEST_NAME := '&1';
TEST_VERSION := '&2';
EXECUTE IMMEDIATE 'create table TEST_TABLE
(
PROJ_NAME VARCHAR(255) DEFAULT TEST_NAME,
PROJ_VER VARCHAR(255) DEFAULT TEST_VERSION,
COL_1 NUMBER(5)
)';
End;
이 오류
Error report:
ORA-00984: column not allowed here
ORA-06512: at line 8
00984. 00000 - "column not allowed here"
*Cause:
*Action:
을 던졌습니다 나는이 문제를 해결할 수있는 방법은? 또한 두 번째 질문으로이 테이블을 만드는 데 성공하려면 다른 스크립트에서 if 문을 사용하여 변수를 proj_name 열의 기본값 (test_name)과 비교하는 방법은 무엇입니까?
편집 :
If test_var = proj_name.default_value ...
내가 할 수 있어야합니다 : 사람이 도움을 수 있다면 문은 다음과 같은 일을 할 경우를 사용하는 방법을 알고 있지만 내가 처음으로 문제를 해결 tbone 및 Parado에 감사합니다 행이 삽입되지 않은 경우에도 기본 proj_name 값과 비교할 수 있습니다. 감사합니다,
고마워요! : D가 완벽하게 작동했습니다. – javakid1993
답변을 수락하고 편집에서 내 두 번째 질문에 대한 또 다른 질문을 게시해야합니까? – javakid1993
@ javakid1993 당신이해야한다고 생각합니다. – Parado