En una placentera tarde de desarrollo pude experimentar un inesperable inconveniente a la hora de crear el esquema de base de datos de Recursos Humanos (HR) en la Base de Datos Oracle 12c. Por alguna razon, no existian los scripts SQL para crear dicho esquema.
Despues de tanto batallar, les dejo una manera practica y sencilla de solventar esto. En este articulo se describen los pasos a seguir para aplicar una posibile solución a esto. Cualquier otra sugerencia puede tratarse.
¿Como crear el esquema HR en la Base de Datos Oracle 12c?
1_ Descargar el archivo ZIP que contiene los scripts SQL y descomprimirlo.
2_ Copiamos todos los archivos .SQL a la ruta:
C:\app\oracle\product\12.1.0\dbhome_1\demo\schema\human_resources\
3_ Abrimos SQLPlus y nos logueamos con las siguientes credenciales:
usuario: sys as sysdba
contraseña: <la establecida para SYS en la instalación>
4_ Ejecutamos la siguiente Query:
@?/demo/schema/human_resources/hr_main.sql
5_ Completamos con los siguientes datos:
• Ingresar una contraseña para el esquema HR. (se recomienda usar la contraseña hr o HR)
specify password for HR as parameter 1: Enter value for 1:
• Ingresar un espacio de tablas por defecto. Aca debemos ingresar el valor USERS
specify default tablespace for HR as parameter 2: Enter value for 2:
• Ingresar un espacio de tablas temporal. Ingresar el valor TEMP
specify temporary tablespace for HR as parameter 3: Enter value for 3:
• Debemos ingresar también nuestra contraseña para el usuario SYS (en mi caso 123).
specify password for SYS as parameter 4: Enter value for 4:
• Y por ultimo, establecer la ruta (path) hacia una carpeta de log (puede ser cualquiera). En mi caso introduje el path: $ORACLE_HOME/log
specify log path as parameter 5: Enter value for 5:
Gracias, me ayudo muchísimo!
ResponderEliminarBuenisimo, gracias por el feedback!
EliminarGenial, me sirvio mucho
ResponderEliminarsoy nuevo en oracle, que es el esquema HR?
ResponderEliminarEl esquema HR es un usuario que tiene tablas ya creadas con datos para que uno puedo realizar pruebas de concepto o realizar algun ejercicio para entender cierto tema, etc.
EliminarPor ejemplo, si un día quieres certificarte en SQL el libro de estudio usa el esquema HR (Recursos Humanos) y OE (Order Entry).
Espero haber solventado tu duda. Gracias por escribirnos!
Si, ya me quedo claro.
EliminarGracias por responder.
Este comentario ha sido eliminado por el autor.
ResponderEliminarEn el usuario cúal debo poner y en la contraseña?
ResponderEliminarLa contraseña que coloco cuando instalo el oracle
EliminarMuchas gracias por el aporte.
ResponderEliminargracias amigo
ResponderEliminarcuando hago consultas no me aparece los datos, solo me muestra el nombre de campo de la tabla, alguien me podria ayudar a como solucionar.
ResponderEliminarEn mi caso yo uso el oracle 11g y no existe el usuario hr cuando busco en la carpeta de "otros usuarios",entonces...¿tambien tendria que seguir el mismo procedimiento con el mismo archivo .zip?
ResponderEliminarMuchas gracias! Nadie explica que Oracle por defecto crea los usuarios a la vieja escuela y que se puede modificar con: alter session set "_ORACLE_SCRIPT"=true;
ResponderEliminarEstuve bastante tratando de aplicar el esquema HR, me ayudaste mucho!
Exitos!!!
MUCHAS GRACIAS ME COSTO MUCHO ENCONTRAR UNA SOLUCIÓN PERO ESTE POST ME SOLUCIONÓ TODO.
ResponderEliminarExcelente, gracias por los comentarios... siempre son bienvenidos. Que bueno que les haya servido. Saludos! Cualquier cosa estamos para ayudarnos.
Eliminarme sale esto
ResponderEliminarBEGIN dbms_stats.gather_schema_stats( 'HR' , granularity => 'ALL' , cascade => TRUE , block_sample => TRUE ); END;
*
ERROR at line 1:
ORA-20000: Schema "HR" does not exist or insufficient privileges
ORA-06512: at "SYS.DBMS_STATS", line 3701
ORA-06512: at "SYS.DBMS_STATS", line 24470
ORA-06512: at "SYS.DBMS_STATS", line 24435
ORA-06512: at line 1
Con que usuario estás corriendo el script? Récorda que debe ser con usuario administrador (normalmente sys). Saludos!
ResponderEliminarhola amigo, tengo exactamente el mismo error y estoy corriendo el script con el usuario sys con privilegios sysdba
EliminarHola Leandro, pueden ser varias cosas... te propongo una lista para que pruebes a ver cual de ellas resuelve el problema:
Eliminar1- Puede que el problema venga de la linea del script hr.sql donde dice:
create user hr identified by 123456a@
*TIP: intenta quitar el arroba, o de reemplazarlo por un guion bajo (underscore), depende como hayas instalado tu base de datos ese simbolo puede generar inconvenientes. También puedes intentar agregarle doble comillas a la password: create user hr identified by "123456a@"
2- Navega al contenedor PDB que contiene el usuario SYS antes de ejecutar el script. Por ejemplo:
$ sqlplus sys as sysdba
Enter password: password
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> alter session set container = ORCLPDB1 # Aqui iria tu PDB
SQL> @hr_main.sql
3- En algunos escenarios particulares puedes intentar ejecutando esta configuracion, antes de lanzar el script:
SQL> alter session set "_ORACLE_SCRIPT"=true;
Comentame como te fue, y si alguna de ellas te permitió ejecutar el script correctamente. Saludos!
Este comentario ha sido eliminado por el autor.
ResponderEliminarMuchísimas gracias por tu aporte!!!
ResponderEliminarSi quiero generar el esquema con una tabla Non-CBD, debo seguir los mismos pasos?
ResponderEliminarY muy buen aporte, aprendí mucho
No, deberías deshabilitar CDB antes de ejecutar los comandos... seria un comando extra antes de empezar con el articulo. De hecho hay un articulo en el blog que explicar como hacerlo. Saludos!
EliminarGracias Amigo....
ResponderEliminarExcelente aporte, me ayudaste mucho,
Muchas gracias, me ayudo mucho.
ResponderEliminarRecomendación: La primera vez no me resulto, porque al llegar al directorio vi que los archivos ya estaban y no los reemplace. Por eso no resulto.
Recuerden primero, reemplazar los archivos.
A mi me salio lo mismo y lo que hice fue crear el usuario HR con todos los privilegios y con eso volví a correr el procedimiento se se muestra en esta pagina. Y me creo el esquema correctamente.
ResponderEliminarMe sirvió mucho, a mi me salìa el usuario hr pero sin tablas y el archivo human resources si estaba en esa ubicación entonces solo realicè los pasos del sqlplus, en el punto 4 me pidió el path y no me pidió contraseña, pero al final me creò las tablas, gracias por estos aportes que nos ayudan tanto. Saludos desde Costa Rica.
ResponderEliminarTengo problemas para establecer la conexión con el sql developer como puedo hacerlo alguno puede poner pantallazo de como puso el usuario conexion etc ..
ResponderEliminarGracias!!!! Soy muy novato en esto y sin este tutorial no lo habría conseguido. Enserio, gracias.
ResponderEliminarMuchas Gracias me ayudooo a resolver ese inconveniente del user HR!
ResponderEliminarHola,
ResponderEliminarEstoy perdido, he seguido todos los pasos y me aparece el mensaje de creación correcto, pero cuando intento conectar a traves del sql developper me dice que el usuario y contraseña es erroneo...
He intentado crear el usuario siguiendo la forma que comenta William mas arriba:
alter session set "_ORACLE_SCRIPT"=true;
create user HR identified by hr;
grant dba to HR;
Y sin problemas pero una vez creado el usuario a mano , al hacer los pasos de SQL PLUS me da error como si ya existieran los datos...pero no los encuentro!! no me aparecen en ningún lado.
Ahora tengo un usuario HR pero este no tiene ninguna de las tablas que en teoría si me ha creado...
que se supone que debo de poner en cada campo soy nuevo en esto y el prof me mando a hacer este mismo trabajo..
ResponderEliminarHola que tal, te explico cada campo por separado:
Eliminar1- es la contraseña que quieres configurarle a ese esquema de base datos. El esquema se crea con nombre HR, y esto va a gusto de cada usuario/desarrollador... en mi caso use "hr" (sin comillas y en minusculas) para no olvidarlo.
2- es el espacio (o particion) dentro de nuestra base de datos donde creará el esquema... por defecto se recomienda usar el valor "USERS" (sin comillas y en mayuculas), dado que ese espacio o particion siempre existirá dentro de nuestra base de datos (esto puedes personalizarlo, pero implica mas tareas de Database Administrator).
3- refiere a algo similar del punto anterior... es un espacio temporal para operaciones, tablas, punteros y vistas que se crean (valga la redundancia) de manera temporal en ese espacio o particion. Aqui se recomienda usar el valor "TEMP" dado que esa particion ya existirá dentro de nuestra base de datos. Igualmente puedes personalizarla, pero debes realizar tareas que solo un Administrador de Base de Datos realiza.
4- la contraseña de tu usuario administrador... normalmente este script lo estas ejecutando con el usuario SYS y por tanto es la contraseña de ese usuario. El valor es la contraseña que configuraste al instalar tu base de datos.
5- aqui te pide un path (o ruta) en donde se guardarán los logs que arroje este esquema... por defecto se recomienda guardarlos en la carpeta /logs dentro de tu instalacion de tu base datos (es decir: $ORACLE_HOME/logs (lo que sería identico a /u01/app/oracle/database/logs. Igualmente esta ruta puede ser cualquier carpeta de tu preferencia. Solo asegurate de que esa carpeta exista.
Cualquier duda me avisas y trataré de ayudarte lo mas claro y certero posible. Saludos!
Muchas gracias
ResponderEliminarpero si en mi carpeta app no tengo la carpeta oracle cual seria la solucion
ResponderEliminardepende como hayas realizado la instalación del producto... por default es C:\app\oracle, esto hace referencia a tu variable $ORACLE_HOME, lo importante es llegar a la ruta $ORACLE_HOME\demo\schema\
Eliminar