Withdata Software

How to execute sql file via command line for Oracle

Use sql*plus run SQL file

sqlplus username/password@databasename @/path/to/test.sql

If you want to see whats going on like this, including any error messages, you need connect to SQL*Plus with

sqlplus username/password@databasename

Then run the script from the SQL*Plus prompt:

set echo on
@/path/to/test.sql

SQL → Oracle reference

Type mapping

Value kindin SQLin Oracle
IntINTNUMBER(10)
BigintBIGINTNUMBER(19)
DecimalDECIMAL(p,s)NUMBER(p,s)
FloatDOUBLE PRECISIONBINARY_DOUBLE
TextVARCHAR(n)VARCHAR2(n)
Long textTEXT / CLOBCLOB
BinaryBLOB / BYTEABLOB
BooleanBOOLEAN / SMALLINTNUMBER(1)
JSONJSON / TEXTCLOB

Dialect differences

SQL is a file format and Oracle is a database server, so the target has to be told the types the file never carried - the rows below are where the two sides diverge.

Propertyin SQLin Oracle
port—1521
identifiersTwo competing conventions: single-quoted literals and diale..."double quotes"
row limit—FETCH FIRST n ROWS ONLY
datesDepends on the dialect: DATE literals, TO_DATE(), or plain ...DATE, TIMESTAMP
long text—CLOB, NCLOB
binaryDialect-specific: X-quoted literal, 0x hex, or decode()BLOB, BFILE
separatorStatement terminators (;)—
encodingNo declaration—
typingTypes belong to the target database, and they differ betwee...—
shapeStatements; a dump usually means CREATE TABLE plus INSERT rowsTables of rows and columns
ceilingNo formal limit, but a single INSERT statement has to fit i...—

Command line

SideCommand
Oracleexp / expdp
Oracle (load)sqlldr (SQL*Loader)

Convert your data online, free

Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.