Want to upsert data from CSV file to existing Oracle table via command line on Windows?
Using ora-cmd, a Command-Line client for Oracle, you can upsert(merge) CSV/TSV/TXT data to Oracle table easily and fast.
Support Windows, Linux, and MacOS.
Download ora-cmd Windows version
No need to install Oracle client library.
Convenient to deploy to cloud. No need to run installation file, just uncompress and run, immediately.
Upsert/Merge CSV/TSV/TXT data into Oracle table via command line on Windows
1. In interactive mode:
ora-cmd> load loadtype=upsert
> updatekey=id
> table=media_messages
> datafile=f:\media_messages.csv
> delimiter=,
> quote="
> header=y;
2. In batch mode:
ora-cmd dsn="pan:withdata@192.168.0.102/test" task=load loadtype=upsert updatekey=id table=media_messages datafile=f:\media_messages.csv delimiter=, quote=" header=y quit=y
“loadtype=upsert” will update row in table if “updatekey” id exists, or insert new row.
See parameters detail.
More about ora-cmd – Command-Line client for Oracle
CSV → Oracle reference
Type mapping
| Value kind | in CSV | in Oracle |
|---|---|---|
| Int | 1234 | NUMBER(10) |
| Bigint | 9007199254740993 | NUMBER(19) |
| Decimal | 1234.56 | NUMBER(p,s) |
| Float | 1.234e+10 | BINARY_DOUBLE |
| Text | quoted only when it contains a comma or a quote | VARCHAR2(n) |
| Long text | must be quoted; line breaks inside force multi-line records | CLOB |
| Date | 2026-09-18 | DATE |
| Datetime | 2026-09-18 14:30:00 | TIMESTAMP |
| Binary | not representable - base64 or hex string | BLOB |
| Boolean | TRUE / FALSE, or 1 / 0 depending on the writer | NUMBER(1) |
| JSON | the whole JSON value quoted, with internal quotes doubled | CLOB |
Dialect differences
CSV 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.
| Property | in CSV | in Oracle |
|---|---|---|
| port | — | 1521 |
| identifiers | Double quotes; a literal quote is doubled ("" ) | "double quotes" |
| row limit | — | FETCH FIRST n ROWS ONLY |
| dates | Conventional text: 2026-09-18 or 2026-09-18 14:30:00 | DATE, TIMESTAMP |
| long text | — | CLOB, NCLOB |
| binary | Not supported | BLOB, BFILE |
| separator | Comma "," | — |
| encoding | No declaration - UTF-8 works only with a BOM | — |
| typing | None - every field is text | — |
| shape | Flat table, optional header row | Tables of rows and columns |
| ceiling | No formal limit; row count bounded by memory | — |
Command line
| Side | Command |
|---|---|
| Oracle | exp / 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.
