2017-11-15 25 views
0
BEGIN 
    execute immediate ' 
    BEGIN 
     ALTER TABLE EMPRESA ADD CONSTRAINT pk_empresa_id PRIMARY KEY (EMPRESA_ID); 

     ALTER TABLE CLIENTE ADD CONSTRAINT pk_cliente_id PRIMARY KEY (CLIENTE_ID); 
    END'; 
END; 

PL/SQL에서 이와 같은 작업을하고 싶지만 오류가 발생합니다.여러 번 실행중인 테이블 변경

어떻게해야합니까?

+1

왜 동일한 제약 조건을 두 번 추가합니까? –

+0

@Gordon 죄송합니다. 코드를 복사하는 것은 실수였습니다. 고마워,하지만 어쨌든 나에게 오류가 발생합니다. –

+0

@RicardoValenzuela - 영어하십시오 – GurV

답변

1

문제는 PLSQL에서 직접 DDL을 실행할 수 없다는 것입니다. 별도의 실행 바로 가기에서 실행할 수 있습니다.

BEGIN 
    execute immediate 'ALTER TABLE EMPRESA ADD CONSTRAINT pk_empresa_id PRIMARY KEY (EMPRESA_ID)'; 
    execute immediate 'ALTER TABLE CLIENTE ADD CONSTRAINT pk_cliente_id PRIMARY KEY (CLIENTE_ID)'; 
END; 
/
+0

답장을 보내 주셔서 감사합니다. 이제 더 잘 이해합니다. 당신은 옳습니다. –