Cómo tomar el script para el esquema de las tablas, procedimientos almacenados de Oracle a través de la herramienta SQL Developer (interfaz de línea de comandos SQLPLUS)?Oracle - Cómo generar secuencias de comandos desde el desarrollador de sql
Respuesta
usar el paquete dbms_metadata, tal como se describe here
Si quieres ver DDL para los objetos, puede utilizar
select dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','OBJECT_OWNER')
from dual
/
Por ejemplo, esto le dará la secuencia de comandos DDL para emp
mesa.
select dbms_metadata.get_ddl('TABLE','EMP','HR')
from dual
/
Es posible que necesite ajustar el formato de long
tipo de número grande. Para los paquetes, necesita acceder a las tablas dba_source, user_source, all_source
. Puede consultar el nombre y tipo de objeto para ver qué código está almacenado.
La respuesta básica parece ser 'utilizar el paquete dbms_metadata'. La pregunta axuilar es:
Pero, ¿qué sucede si quiero generar un script para todas las tablas a la vez?
Y la respuesta es, presumiblemente, para interrogar el catálogo del sistema para los nombres y los propietarios de todas las tablas:
SELECT dbms_metadata.get_ddl('TABLE', s.tabname, s.tabowner)
FROM system_catalog_describing_tables AS s
WHERE ...any conditions that are needed...
No estoy lo suficientemente familiarizado con Oracle para conocer el catálogo del sistema. En Informix, lo que sí sé, suponiendo que no era un procedimiento dbms_metadata.get_ddl
, la consulta sería:
SELECT dbms_metadata.get_ddl('TABLE', s.tabname, s.owner)
FROM "informix".systables AS s
WHERE tabid >= 100 AND tabtype = 'T';
en Informix, tabids menos de 100 están reservados para el catálogo del sistema, y no mesas (vistas, sinónimos , secuencias y algunas otras cosas esotéricas) se excluyen al requerir el 'tabtype' correcto.
En Oracle, la ubicación que contiene información sobre todos los objetos de la base de datos, incluidas las tablas y los procedimientos almacenados, se denomina Diccionario de datos. Es una colección de vistas que le proporciona acceso a los metadatos que definen la base de datos. Puede consultar las vistas del diccionario de datos para obtener una lista de objetos de base de datos deseados y luego usar las funciones disponibles en el paquete dbms_metadata
para obtener el DDL para cada objeto. La alternativa es investigar el soporte en dbms_metadata
para exportar DDL para una colección de objetos.
Para algunos indicadores, por ejemplo, para obtener una lista de tablas que puede utilizar el siguiente Diccionario información Vistas de
user_tables
contiene todas las tablas propiedad del usuarioall_tables
contiene todas las tablas que son accesibles por el usuario- y así sucesivamente ...
yo no sabía nada de DMBS_METADATA, pero sus respuestas me impulsó a crear un utility to script all objects owned by an Oracle user.
No funciona para mí. Requiere el ensamblado DDTek.Oracle (proveedor de datos de datadirect.com). –
Esto es exactamente lo que estaba buscando, así que gracias – Asaf
Si tienes una larga lista de java sp que normalmente no quieres escribir de esta manera es una pesadilla. –
¿Qué quieres decir con "sp"? –
Oracle SQL Developer> Ver> DBA> Seleccione su conexión> Ampliar> Seguridad> Usuarios> clic derecho sobre el usuario> Crear como> rellene los campos> Copiar secuencia de comandos SQL> Cerrar
Si su el usuario tiene privilegios de objetos, haga esto también
Oracle SQL Developer> Ver> DBA> Seleccione su conexión> Amplíe> Seguridad> Usuarios> Haga doble clic en su usuario> Privs de objetos> Seleccione todos los datos> Haga clic con el botón derecho> Exportar> Exportar como archivo de texto
Edite ese archivo de texto para otorgar privilegios de objeto a su usuario.
Esto funcionó para mí:
- En SQL Developer, haga clic derecho en el objeto que desea generar un guión. es decir, el nombre de la tabla
- Seleccionar DLL rápido> Guardar en archivo
- Esto escribirá la sentencia create en un archivo sql externo.
Tenga en cuenta que también puede resaltar varios objetos al mismo tiempo, por lo que podría generar un script que contenga instrucciones de creación para todas las tablas dentro de la base de datos.
Buena respuesta. Una pequeña aclaración. Al menos en la versión actual de SQL Developer, si seleccionas varios procedimientos almacenados y haces el 'Quick DDL', no obtendrás el cuerpo del SP. Para lograrlo, debe abrir varios procedimientos almacenados para poder ver la parte del árbol que hace referencia al cuerpo y seleccionar un número de ellos y luego hacer un 'DDL rápido'. Gracias por la respuesta, justo lo que estaba buscando. – glaucon
Esto funcionó para mí:
PL SQL Developer -> Herramientas -> Exportar usuario Objetos
Seleccione las casillas de verificación: Incluir privilegios e incluyen almacenamiento de
Seleccione el nombre de archivo. Hit exportar
Más adelante puede usar el archivo de exportación generado para crear la tabla en otro esquema.
SQL Developer y PL/SQL Developer son diferentes programas. –
funcionó para PL SQL Developer. –
paso 1. select * from <tablename>;
paso 2. simplemente haga clic derecho en su salida (es decir, datos), luego vaya a la última opción exportar, le dará alguna extensión, luego haga clic en la extensión requerida y luego aplique obtendrá un nuevo archivo que incluye datos.
- 1. Cómo generar secuencias de comandos SQL desde MySQL Workbench utilizando la línea de comandos?
- 2. generar secuencias de comandos Sin Fecha
- 3. Generar inserción sql en Oracle
- 4. Desarrollador moviéndose de SQL Server a Oracle
- 5. Ejecutar secuencias de comandos R desde VBA
- 6. Cómo generar secuencias de comandos de instalación de procedimientos almacenados CLR SQL sin Visual Studio
- 7. Base de datos DB2 en el desarrollador Oracle SQL
- 8. ¿Generar scripts del servidor SQL desde la línea de comandos?
- 9. Cómo ejecutar secuencias de comandos SQL de un procedimiento de SQL PL
- 10. Generar ipa desde xcode línea de comandos
- 11. ¿Hay alguna herramienta gratuita para generar secuencias de comandos 'INSERT INTO' en MS SQL Server?
- 12. Base de datos de secuencias de comandos SQL-Server
- 13. Cómo llama a varias secuencias de comandos de MSBuild desde una secuencia de comandos de MSBuild
- 14. Cómo ejecutar secuencias de comandos sql utilizando SQL Server Management Studio?
- 15. ¿Cómo ejecuto las secuencias de comandos de Groovy como Java desde la línea de comandos?
- 16. ¿Cómo generar programáticamente DDL desde la base de datos Oracle?
- 17. Oracle RAC y secuencias
- 18. ¿Cómo pasar el parámetro a las secuencias de comandos ant?
- 19. Generar secuencia de comandos para el esquema y los datos
- 20. ¿Cómo comprobar el registro del compilador en el desarrollador sql?
- 21. todos los usuarios mesas/secuencias en Oracle
- 22. Cómo generar Javadoc desde la línea de comandos
- 23. ¿Cómo puedo anular las secuencias de comandos SQL generadas por MigratorScriptingDecorator
- 24. variables en las secuencias de comandos TOAD
- 25. $ * en secuencias de comandos bash
- 26. Herramientas del desarrollador del navegador Chrome: las secuencias de comandos aparecen varias veces
- 27. Consulta de secuencias de filas en SQL
- 28. Obsesión con secuencias de comandos sin bloqueo
- 29. C# lenguaje de secuencias de comandos
- 30. ¿Cómo acceder a Subversion desde Oracle PL/SQL?
El largo referido aquí es algo como esto. "establecer largas 200000 páginas 0 líneas 131" – Nap