Create table in Procedure

前端 未结 4 941
旧时难觅i
旧时难觅i 2020-12-12 00:48

I have created the table \"Risiko\" which shouldntbe dynamic, i tought it would be that simple but it was not. How should i solve it? and what am i doing wrong?



        
4条回答
  •  一生所求
    2020-12-12 01:20

    You need to use execute immediate and probably commit the changes at the end.

       CREATE OR REPLACE PROCEDURE TABLERISIKO IS
    
    
    BEGIN
       execute immediate 'drop table risiko';
       execute immediate 'CREATE TABLE Risiko
          (
          RNr       INTEGER,
          Projekt       INTEGER,
          Text       VARCHAR(25),
          Gruppe       INTEGER,
          Auswirkung    INTEGER,
          WKeit       INTEGER,
          Pruefdatum    DATE,
          PRIMARY KEY    (RNr),
          CONSTRAINT FKRisiko1 FOREIGN KEY (Projekt)
          REFERENCES Projekt(ProNr),
          CONSTRAINT FKRisiko2 FOREIGN KEY (Gruppe)
          REFERENCES Risikogruppe (RGNr),
          CONSTRAINT PosAuswirkung CHECK(Auswirkung >=0),
          CONSTRAINT WKeitProzent CHECK(WKeit>=0 AND WKeit<=100)
          )';
    
       execute immediate 'INSERT INTO Risiko 
       VALUES(1,1,''Anforderungenunklar'',1,50000,30
       ,TO_DATE(''25.01.06'',''DD.MM.YY''))';
       execute immediate 'INSERT INTO Risiko 
       VALUES(2,1,''Abnahmeprozess offen'',2,30000,70
       ,TO_DATE(''26.02.06'',''DD.MM.YY''))';
       execute immediate 'INSERT INTO Risiko
       VALUES(3,2,''Ansprechpartner wechseln'',1,20000,80
       ,TO_DATE(''06.05.06'',''DD.MM.YY''))';
       execute immediate 'INSERT INTO Risiko
       VALUES(4,2,''neue Entwicklungsumgebung'',3,40000,20
       ,TO_DATE(''05.10.06'',''DD.MM.YY''))';
       commit;
    END;
    

提交回复
热议问题