Search code examples
oracle-databaseoracle10gddl

How do I use CREATE OR REPLACE?


Am I correct in understanding that CREATE OR REPLACE basically means "if the object exists, drop it, then create it either way?"

If so, what am I doing wrong? This works:

CREATE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')

And this doesn't (ORA-00922: missing or invalid option):

CREATE OR REPLACE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')

Am I doing something stupid? I don't seem to be able to find much documentation about this syntax.


Solution

  • This works on functions, procedures, packages, types, synonyms, trigger and views.

    Update:

    After updating the post for the third time, I'll reformulate this:

    This does not work on tables :)

    And yes, there is documentation on this syntax, and there are no REPLACE option for CREATE TABLE.