SQL*Loader loads data to an oracle database.With the help of SQL*Loader you can load data from external files to Oracle database. With the powerful data parsing engine that puts little limitation on the format of the data in the datafile.
Below key points taken from Oracle documention:-
1. Load data across a network. This means that you can run the SQL*Loader client on a different system from the one that is running the SQL*Loader server.
2. Load data from multiple datafiles during the same load session.
3. Load data into multiple tables during the same load session.
4. Specify the character set of the data.
5. Selectively load data (you can load records based on the records' values).
6. Manipulate the data before loading it, using SQL functions.
7. Generate unique sequential key values in specified columns.
8. Use the operating system's file system to access the datafiles.
9. Load data from disk, tape, or named pipe.
10. Generate sophisticated error reports, which greatly aid troubleshooting.
We know oracle database consists of data files, redo log files, control files, temporary files and temporary files.
The size of the database actually means the total size of all these files.
col "Database Size" format a20 col "Free space" format a20 col "Used space" format a20 select round(sum(used.bytes) / 1024 / 1024 / 1024 ) || ' GB' "Database Size" , round(sum(used.bytes) / 1024 / 1024 / 1024 ) - round(free.p / 1024 / 1024 / 1024) || ' GB' "Used space" , round(free.p / 1024 / 1024 / 1024) || ' GB' "Free space" from (select bytes from v$datafile union all select bytes from v$tempfile union all select bytes from v$log) used , (select sum(bytes) as p from dba_free_space) free group by free.p /
I found this on a blog and very use full. It will show you the total size and the used size. Total size includes size of all files.
output will be like :-
Database Size Used space Free space -------------------- -------------------- -------------------- 78 GB 59 GB 19 GB
I just started working on 12C version of oracle database.It's new to me and facing many problems.
Error code: ORA-65016: FILE_NAME_CONVERT must be specified
Description:"ORA-65016: FILE_NAME_CONVERT must be specified" normally occurs when you create a PDB.I will explain later what is a PDB.
Cause and solution :
ORA-65016: FILE_NAME_CONVERT must be specified caused when Data files, and possibly other files, needed to be copied as a part of creating a pluggable database.Enable OMF or define PDB_FILE_NAME_CONVERT system parameter before issuing CREATE PLUGGABLE DATABASE statement, or specify FILE_NAME_CONVERT clause as a part of the statement and make sure the path you are giving to convert the file exists.
I think if you are creating the PDB's using GUI then you will not face this error "ORA-65016: FILE_NAME_CONVERT must be specified". If you creating ODB using script and you have gave a wrong path then may you face "ORA-65016: FILE_NAME_CONVERT must be specified".
Syntax to create PDB:-
create pluggable database TEST admin user TEST identified by TEST file_name_convert = ('lcoation/', '/lcoation/');
Please write in comment box if you think there is better explanation on this error "ORA-65016: FILE_NAME_CONVERT must be specified".
As this error (ORA-01578: ORACLE data block corrupted) message shows that you have a corrupt block. So for data corruption you need to check what is going wrong.Check alert logs for more detail.
You can also use below sql:-
select * from v$database_block_corruption;
When i run the SQL. I found that one file # in my case 14 and some block 15353 is corrupted. As we know Corruption can occur in a table or index. So i have checked for this. In my case it was an index. So for a solution i just drop the index and created again and rebuild it. Just remember you cannot rebuild the index if it is having error ORA-01578: ORACLE data block corrupted.
So drop and create index works for me and now i can rebuild. Dropping a index will not harm you much because it's already on corrupt block.
Also i think when we create index again then it will take a different block. I am not sure about this because i have checked with sql after dropping and creating the index:-
select relative_fno, owner,segment_name,segment_type from dba_extents where file_id = 14 and 15353 between block_id and block_id + blocks - 1;
And found the same file and block information. It is strange as when i run the SQL : -select * from v$database_block_corruption; It also shows me the same information that showed me that i still have the corroupt block for the same index and same file. But the thing is my DB is working now. For now It's working fine.
Please if someone has faced it before let me know in comment section. How to get rid of the error ORA-01578: ORACLE data block corrupted.
For a table label corruption you can use RMAN. I am just putting the link below.
ORA-1254: TNS: could not resolve the connect identifier specified This error is because the connect identifier given, wrongalias, cannot be resolved into database connection details by the TNS (Transparent Network Substrate—not an acronym particularly worth remembering) layer of Oracle Net. The name resolution method to be used and its configuration is a matter for the database administrator. In this case, the error is obvious: the user entered the wrong connect identifier. The second connect attempt gives the correct identifier, orcl.
This fails with ORA-12541: TNS:no listener This indicates that the connect identifier has resolved correctly into the address of a database listener, but that the listener is not actually running. Note that another possibility would be that the address resolution is faulty and is sending SQL*Plus to the wrong address. Following this error, the user should contact the database administrator and ask him or her to start the listener. Then try again. The third connect request fails with
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor This error is generated by the database listener. SQL*Plus has found the listener with no problems, but the listener cannot make the onward connection to the database service. The most likely reason for this is that the database instance has not been started, so the user should ask the database administrator to start it and then try again.
Cómo solucionar ORA-12505, Listener no conoce actualmente de SID
Este es un error muy común y realmente se chupar la sangre si no estás camino correcto. Intentaré explicarle sobre este error.
Como se puede ver este error se muestra que el oyente está en marcha y en funcionamiento, pero no sirve el SID que está destinado a. Y sí primero usted necesita comprobar donde usted está haciendo frente a este error. Es en el lado del cliente o en el lado del servidor.
Entonces, ¿cuál es el SID que está buscando este oyente?
SID es el nombre de su base de datos o puede decir identificador de servicio, que es ayudar a identificar el servicio como utilizamos PROD para la producción de UAT para el servidor de pruebas. SID de la base de datos debe ser idéntico para evitar la confusión. Su longitud es de 8 caracteres sólo significa que no se puede extender más de 8 caracteres.
¿Cómo funciona el oyente?
Como todos sabemos que es como un coche, que nos caen desde el aeropuerto al hotel, hahah lo siento, no soy bueno en los ejemplos. Así que permítanme explicar técnicamente, cada vez que intenta hacer la conexión de una máquina cliente con el servidor DB en lugar de conectar directamente oracle tiene esta utilidad llamada oyente. Como usted puede entender por su nombre, sí, sí sí que va a escuchar su reqst y luego pasar que a DB. Wow gran derecho.?
Ahora, ¿qué pasa si usted está tomando un taxi a algún hotel y ese hotel no existe? Lo mismo ocurre con este error. El conductor del taxi no sabe adonde usted va tan él a través de usted el error: -
"ORA-12505, TNS: Listener no sabe actualmente de SID dado en el descriptor de conexión"
¿Cómo solucionar esto "ORA-12505, TNS: el oyente no está actualmente"?
Es muy fácil. Dile al taxista nombre del hotel que realmente existe. La tarifa suficiente ¿verdad?
OK Sugerencias para solucionar problemas.
Todos sabemos que listner.ora y tnsnames.ora son dos archivos que están involucrados en este caso. Y la ubicación de estos archivos son $ ORACLE_HOME \ network \ admin
Ahora compruebe su tnsnames.ora que SID se menciona es correcto o no. Al igual que para mi prueba de DB es debe ser como a continuación: - TEST_TNS = (DESCRIPCION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = *******) (PORT = 0000))) (CONNECT_DATA = (SERVICE_NAME = TEST) (INSTANCE_NAME = TEST)
Usted puede cambiar el formato también pero me gusta esta manera. Y sí PORT no puede ser 0000.;)
Ahora sabe que el nombre del servicio SID TEST está escuchando en el número de puerto 0000.
Si he establecido entradas exactas de las que no debe enfrentar ningún problema. Por favor, compruebe estas entradas. También verifique el archivo listner.ora también. Si hay desajuste en las entradas. Que vas a enfrentar el mismo problema
Eso resolverá su problema. También compruebe este enlace: - ora-12154-error-en-oracle-11g-and-12c Sigue compartiendo. Mantén la sonrisa
How to solve ORA-12505, Listener does not currently know of SID
This is very common error and really it will suck your blood if you are not right path. I will try to explain you about this error.
As you can see this error is showing itself that listener is up and running but not serving the SID that it is meant for. And yes 1st you need to check where you are facing this error. Is it on client side or on server side.
So what is the SID this listener looking for?
SID is name for your database or you can say service identifier, That is help to to identify the the service like we use PROD for production UAT for testing server. SID of Database should be identical to avoid the confusion. It's length is 8 character only that means you can not extend it more then 8 character.
Now how listener works ?
As we all know its like a car, That drop us from airport to hotel, hahah sorry I am not good in examples. So let me explain technically, whenever you try to make connection from a client machine to the DB server rather than connecting directly oracle have this utility called listener. As you can understand by name it self, yes yes it is going to listen your reqst and then pass that to DB. wow great right.?
Now what if you are taking a taxi to some hotel and that hotel does not exist? Same happens with this error. Taxi driver don't know where you are going so it will through you the error :-
"ORA-12505, TNS:Listener does not currently know of SID given in connect descriptor"
How to solve this "ORA-12505, TNS:listener does not currently" ?
It's very easy. Tell the taxi driver name of hotel that really exist. Fare enough right?
OK Tips for troubleshooting.
We all know that listner.ora and tnsnames.ora are two files that are involved in this case. and location of these files are $ORACLE_HOME\network\admin
Now check your tnsnames.ora that SID is mentioned is correct or not. Like for my TEST DB is should be like below :- TEST_TNS = (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=*******)(PORT=0000)))(CONNECT_DATA=(SERVICE_NAME=TEST)(INSTANCE_NAME=TEST)))
You can change the format also but i like this way. and yes PORT can't be 0000. ;)
Now you know SID service name TEST is listening at 0000 port number.
If I have set accurate entries than you shouldn't face any issue. So Please check these entries. Also check listner.ora file too. If there is mismatch in entries. Than you going to face same issue
“Error: ORA-02291: integrity constraint violated - parent key not found”
Reason: A Primary key does not have the same value as the foreign key. We will discuss it in detail later in this article.
Action: For ORA-02291: integrity constraint violated - parent key not found You may either delete the foreign key or the matching primary key can be added. In either way, you may try to get this error corrected.
Let's understand more about ORA-02291: integrity constraint violated - parent key not found?
The Oracle software brought us the strength by which multiple tables in the database can pass on information so efficiently. Not only this, there are numerous devices in this software which enables access to and sourcing data from multiple tables. You can easily execute complicated database issues without an unusual uncertainty by creating statements with the fantastic characteristic of this software. Realistically, if we talk about user or database no one is perfect or 100% error-free or have the sense to identify forthcoming possible errors occurs throughout the regular activities.
The most well-known error occurs while manipulating data across multiple data tables is the ORA-02291.Now, we will have a brief discussion about ORA-02291: integrity constraint violated - parent key not found:-
" integrity constraint <constraint name> violated – parent key not found” is the standard message co-occurred with the ORA-02291.Which means someone used the primary key in order to execute a reference to a specific table but somehow, during this process specified column failed to match the primary key. As well as, the other reason for executing the error can be non-existence of primary key for the table in question.It is useful to secure a note of few important things related to the primary key before we proceed further.
In oracle, a primary key is a single field or combination of fields that defines a record in a unique way. Every field of the primary key must contain some value, it means, the value of any field can never be null and each table contains only one primary key. One last important thing about a primary key that it cannot hold more than thirty-two columns.
Now while we are familiar with all concepts of a primary key, it will not be difficult for us to determine the error and fix it with fewer efforts (ORA-02291: integrity constraint violated - parent key not found).
Usually, the error occurs when foreign key plays a parent-child relation between two tables. The process of foreign key states that each table shares the same value. overall, the referenced table is a parent table. On the other hand, the child table will take place where foreign key originates from. It is quite often that a foreign key in a child table will reference to a primary key in a parent table. The cause why the ORA-02291 trigger is when the corresponding parent is empty (does not have any value) and by the time, you still try to insert a value into a child table which includes a foreign key. Your this action disrupts the integrity of referential relationship, bother standard functionality and provoking oracle to produce an error message "ORA-02291: integrity constraint violated - parent key not found".
“The valid method to fix the error ORA-02291: integrity constraint violated - parent key not found “--- the primary table to insert the value will be the parent and obviously secondary table to insert value will be the child table. To elaborate, you should insert the value inside the parent table first and later, add it to the child table.