¿Estoy en lo correcto al entender que CREAR O REEMPLAZAR básicamente significa "si el objeto existe, suéltelo y luego créelo de cualquier manera"?
Si es así, ¿qué estoy haciendo mal? Esto funciona:
CREATE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
Y esto no (ORA-00922: opción faltante o inválida):
CREATE OR REPLACE TABLE foo (id NUMBER,
title VARCHAR2(4000) DEFAULT 'Default Title')
¿Estoy haciendo algo estúpido? Parece que no puedo encontrar mucha documentación sobre esta sintaxis.
CREATE OR REPLACE
también funciona para sinónimos y desencadenantesEl siguiente script debería hacer el truco en Oracle:
fuente
No funciona con tablas, solo funciones, etc.
Aquí hay un sitio con algunos ejemplos .
fuente
Un procedimiento útil para bases de datos de Oracle sin usar excepciones (bajo circunstancias, debe reemplazar user_tables con dba_tables y / o restringir el espacio de tabla en la consulta):
fuente
fuente
Si lo está haciendo en el código, primero verifique la tabla en la base de datos utilizando la consulta SELECT table_name FROM user_tables WHERE table_name = 'XYZ'
si se encuentra un registro, truncar la tabla de lo contrario crear una tabla
Trabaja como Crear o Reemplazar.
fuente
Puede utilizar CORT ( www.softcraftltd.co.uk/cort ). Esta herramienta permite CREAR O REEMPLAZAR tablas en Oracle. Parece que:
Conserva los datos.
fuente
Así que he estado usando esto y ha funcionado muy bien: - funciona más como un DROP IF EXISTS pero hace el trabajo
Espero que esto ayude También referencia: PLS-00103 Error en PL / SQL Developer
fuente
"Crear o reemplazar tabla" no es posible. Como dijeron otros, puede escribir un procedimiento y / o usar comenzar a ejecutar inmediatamente (...). Debido a que no veo una respuesta sobre cómo (re) crear la tabla, puse un script como respuesta.
PD: en línea con lo que mencionó jeffrey-kemp: este script debajo NO guardará datos que ya están presentes en la tabla que va a colocar. Debido al riesgo de perder datos, en nuestra empresa solo se permite alterar las tablas existentes en el entorno de producción y no se permite eliminar tablas. Al utilizar la declaración de la tabla de caída, tarde o temprano, la policía de la empresa estará parada en su escritorio.
fuente
Yo haría algo como esto
fuente
Si es para MS SQL ... El siguiente código siempre se ejecutará sin importar si la tabla ya existe o no.
fuente