Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

PL/SQL Control structures

Îåêßíçóå áðü ôï ìÝëïò axaros. Τελευταία δημοσίευση από το μέλος axaros στις 08-11-2006, 12:53. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  06-11-2006, 11:52 19887

    PL/SQL Control structures

    Παιδιά καλημέρα.
    Πως θα γράψω το εξής σε PL/SQL :

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tblAgents]') AND type in (N'U'))
    BEGIN
    CREATE TABLE [dbo].[tblAgents](
     [Id] [bigint] NOT NULL,
     [Name] [nvarchar](250) NOT NULL,
     CONSTRAINT [PK_tblAgents_1] PRIMARY KEY CLUSTERED
    (
     [Id] ASC
    )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    END
    GO


    Πάνος Αβραμίδης
  •  06-11-2006, 13:01 19891 σε απάντηση της 19887

    Απ: PL/SQL Control structures

    Για τον έλεγχο του άν υπάρχει ο πίνακας θα σου έλεγα

    select * from sys.all_all_tables where owner = 'yourusernamehere'

    and table_name like 'tblAgents'

    ( ή διαφορετικά count(*) ) και αν δεν σου επιστρέψει τίποτα

    create table tblagents

    (

    id number(37) not null,

    name varchar2(250) not null

    )

    tablespace USERS

    storage

    (

    initial 64K

    minextents 1

    maxextents unlimited

    );

    alter table tblagents

    add constraint PK_tblAgents_1 primary key (ID);

    Ελπίζω να βοήθησα .

  •  06-11-2006, 13:10 19892 σε απάντηση της 19891

    Απ: PL/SQL Control structures

    Βοήθησες φίλε nsouflis ... To IF πως το συντάσω συγκεκριμένα ;
    Πάνος Αβραμίδης
  •  06-11-2006, 13:41 19893 σε απάντηση της 19891

    Απ: PL/SQL Control structures

    Για να τρέξεις DDL statements από plsql block πρέπει να χρησιμοποιήσεις το

    πακέτο

    dbms_sql.parse

    ή να καλέσεις την

    execute immediate

    Παρακάτω είναι ενά sample block με τον δεύτερο τρόπο

    declare

    -- Local variables here

    i integer;

    begin

    -- Test statements here

    select count(*)

    into i

    from sys.all_all_tables where owner = 'yourusername'

    and table_name like 'TBLAGENTS' ;

    if i
    execute immediate 'create table TABLEAGENTS(id number(37) not null,name varchar2(250) not null)';

    execute immediate 'alter table TBLAGENTS add constraint PK_tblAgents_1 primary key (ID)' ;



    end if;

    end;

  •  06-11-2006, 16:40 19910 σε απάντηση της 19893

    Απ: PL/SQL Control structures

    Φίλε nsouflis,
    είμαι πραγματικά ευγνώμων ...
    Πάνος Αβραμίδης
  •  06-11-2006, 16:58 19913 σε απάντηση της 19910

    Απ: PL/SQL Control structures

    Πάνο ο community server mas χάλασε το if then statement

    ( μόνο στην διόρθωση το βλέπω ολόκληρο )

    το σωστό

    "if i < 1 then

    execute immediate 'create table TABLEAGENTS(id number(37) not null,name varchar2(250) not null)';

    execute immediate 'alter table TBLAGENTS add constraint PK_tblAgents_1 primary key (ID)' ;

    end if;"
  •  08-11-2006, 09:38 19974 σε απάντηση της 19913

    Απ: PL/SQL Control structures

    Φίλε nsouflis,
    αν έχεις χρόνο και δεν σε έπρηξα :

    Πως αντίστοιχα θα κάνω create τον Oracle User που χρειάζομαι, θα του κάνω
    grant rights (αλήθεια ποιά χρειάζομαι) και τέλος το schema για να ρίξω μέσα
    τα υπόλοιπα objects μου;


    Πάνος Αβραμίδης
  •  08-11-2006, 10:05 19983 σε απάντηση της 19974

    Απ: PL/SQL Control structures

    create user myuser
      identified by  mypass
      default tablespace USERS
      temporary tablespace TEMP
      profile DEFAULT
      quota unlimited on users;
    -- Grant/Revoke role privileges
    grant connect to MYUSER;
    grant dba to MYUSER;   -- αν θέλεις να είναι admin ο χρήστης σου
    grant resource to MYUSER; 
    -- Grant/Revoke system privileges
    grant unlimited tablespace to MYUSER ;  --- αν θέλεις


    Κάνε logon με τον χρήστη που έφτιαξες , και ότι Object δημιουργήσεις θα μπεί στο schema του .
     Αν όμως θέλεις να είναι προσβάσιμα τα object και από άλλον χρήστη πρέπει να  φτιάξεις public synonym

    create public synonym MYOBJECT
    for MYUSER.MYOBJECT ;

    Στο http://www.allroundautomations.com/plsqldev.html θα βρείς το plsqldeveloper , ένα εργαλείο που θα σου λύσει τα χέρια
    για οτιοδήποτε θέλεις να κάνεις πάνω στην Oracle .  ( 30 day trial αν θυμάμαι καλά ) Smile


  •  08-11-2006, 12:53 19996 σε απάντηση της 19983

    Απ: PL/SQL Control structures

    Είσαι άψογος !!!
    Ευχαριστώ θερμά ...
    Πάνος Αβραμίδης
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems