Oracle REST Data Services (ORDS) : Database API - Data Pump
The Oracle REST Data Services (ORDS) database API allows us to create Data Pump export and import jobs via REST web service calls.
oracle miscconfigurationintermediate
by OracleDba
12 views
The Oracle REST Data Services (ORDS) database API allows us to create Data Pump export and import jobs via REST web service calls.
12345678910111213141516
https://localhost:8443/ords/{schema-alias}/_/db-api/stable/database/datapump/jobs/
# Example
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/
https://localhost:8443/ords/{database-service}/{schema-alias}/_/db-api/stable/database/datapump/jobs/
# Example
https://localhost:8443/ords/pdb1/dbapi_user/_/db-api/stable/database/datapump/jobs/
# REST
.../_/db-api/stable/database/datapump/jobs/
# RPC
.../_/db-api/stable/database/datapump/export
.../_/db-api/stable/database/datapump/import123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
conn / as sysdba
alter session set container=pdb1;
--drop user testuser1 cascade;
create user testuser1 identified by testuser1
default tablespace users quota unlimited on users;
grant create session, create table, create type to testuser1;
conn testuser1/testuser1@pdb1
create table emp (
empno number(4,0),
ename varchar2(10 byte),
job varchar2(9 byte),
mgr number(4,0),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2,0),
constraint pk_emp primary key (empno)
);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7369,'SMITH','CLERK',7902,to_date('17-DEC-80','DD-MON-RR'),800,null,20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7499,'ALLEN','SALESMAN',7698,to_date('20-FEB-81','DD-MON-RR'),1600,300,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7521,'WARD','SALESMAN',7698,to_date('22-FEB-81','DD-MON-RR'),1250,500,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7566,'JONES','MANAGER',7839,to_date('02-APR-81','DD-MON-RR'),2975,null,20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7654,'MARTIN','SALESMAN',7698,to_date('28-SEP-81','DD-MON-RR'),1250,1400,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7698,'BLAKE','MANAGER',7839,to_date('01-MAY-81','DD-MON-RR'),2850,null,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7782,'CLARK','MANAGER',7839,to_date('09-JUN-81','DD-MON-RR'),2450,null,10);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7788,'SCOTT','ANALYST',7566,to_date('19-APR-87','DD-MON-RR'),3000,null,20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7839,'KING','PRESIDENT',null,to_date('17-NOV-81','DD-MON-RR'),5000,null,10);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7844,'TURNER','SALESMAN',7698,to_date('08-SEP-81','DD-MON-RR'),1500,0,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7876,'ADAMS','CLERK',7788,to_date('23-MAY-87','DD-MON-RR'),1100,null,20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7900,'JAMES','CLERK',7698,to_date('03-DEC-81','DD-MON-RR'),950,null,30);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7902,'FORD','ANALYST',7566,to_date('03-DEC-81','DD-MON-RR'),3000,null,20);
insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values (7934,'MILLER','CLERK',7782,to_date('23-JAN-82','DD-MON-RR'),1300,null,10);
commit;
mkdir -p /tmp/dp
conn / as sysdba
alter session set container=pdb1;
create or replace directory test_dir AS '/tmp/dp';
grant read, write on directory test_dir to testuser1;
column owner_name format a20
column job_name format a30
column operation format a10
column job_mode format a10
column state format a12
select owner_name,
job_name,
trim(operation) as operation,
trim(job_mode) as job_mode,
state,
degree,
attached_sessions,
datapump_sessions
from dba_datapump_jobs
order by 1, 2;1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
curl -ks -X GET \
--user dbapi_user:DbApiUserPassword1 \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/ | python3 -mjson.tool
{
"items": [
{
"owner_name": "DBAPI_USER",
"job_name": "DATAPUMP_REST_EXPORT_20201001115524",
"operation": "EXPORT ",
"job_mode": "SCHEMA ",
"state": "NOT RUNNING",
"degree": 0,
"attached_sessions": 0,
"datapump_sessions": 0,
"links": [
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001115524/"
}
]
}
],
"hasMore": false,
"limit": 25,
"offset": 0,
"count": 1,
"links": [
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "edit",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "first",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
}
]
}
curl -ks -X GET \
--user dbapi_user:DbApiUserPassword1 \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001115524/ | python3 -mjson.tool
{
"job_name": "DATAPUMP_REST_EXPORT_20201001115524",
"owner_name": "DBAPI_USER",
"operation": "EXPORT",
"job_mode": "SCHEMA",
"state": "NOT RUNNING",
"degree": 0,
"attached_sessions": 0,
"datapump_sessions": 0,
"job_state": "COMPLETED",
"job_comment": "Job \"DBAPI_USER\".\"DATAPUMP_REST_EXPORT_20201001115524\" successfully completed at Thu Oct 1 11:56:07 2020 elapsed 0 00:00:41",
"links": [
{
"rel": "collection",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "enclosure",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001115524/EXPDAT01-20201001_11_55_26.DMP"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001115524/EXPDAT-2020-10-01-11_55_24.LOG"
},
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001115524/"
}
]
}12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
cat > /tmp/payload.json <<EOF
{
"operation": "EXPORT",
"job_mode": "TABLE",
"datapump_dir": "TEST_DIR",
"name_expressions": [
{"expression": "='EMP'"},
{"expression": "!='DEPT'"}
],
"schema_expressions": [
{"expression": "= 'TESTUSER1'"}
]
}
EOF
cat > /tmp/payload.json <<EOF
{
"operation": "EXPORT",
"job_mode": "TABLE",
"datapump_dir": "TEST_DIR",
"filter": "EMP",
"schema_expressions": [
{"expression": "= 'TESTUSER1'"}
]
}
EOF
curl -ks -X POST \
--user dbapi_user:DbApiUserPassword1 \
--data-binary @/tmp/payload.json \
--header "Content-Type:application/json" \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/ | python3 -mjson.tool
{
"job_name": "DATAPUMP_REST_EXPORT_20201001122631",
"owner_name": "DBAPI_USER",
"operation": "EXPORT",
"job_mode": "TABLE",
"state": "EXECUTING",
"degree": 1,
"attached_sessions": 0,
"datapump_sessions": 2,
"job_state": "EXECUTING",
"links": [
{
"rel": "collection",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001122631/EXPDAT-2020-10-01-12_26_31.LOG"
},
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001122631/"
}
]
}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
drop table testuser1.emp purge;
cat > /tmp/payload.json <<EOF
{
"operation": "IMPORT",
"job_mode": "TABLE",
"datapump_dir": "TEST_DIR",
"file_name": "EXPDAT01-20201001_11_55_26.DMP",
"name_expressions": [
{"expression": "='EMP'"}
],
"schema_expressions": [
{"expression": "= 'TESTUSER1'"}
]
}
EOF
cat > /tmp/payload.json <<EOF
{
"operation": "IMPORT",
"job_mode": "TABLE",
"datapump_dir": "TEST_DIR",
"file_name": "EXPDAT01-20201001_11_55_26.DMP",
"filter": "EMP",
"schema_expressions": [
{"expression": "= 'TESTUSER1'"}
]
}
EOF
curl -ks -X POST \
--user dbapi_user:DbApiUserPassword1 \
--data-binary @/tmp/payload.json \
--header "Content-Type:application/json" \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/ | python3 -mjson.tool
{
"job_name": "DATAPUMP_REST_IMPORT_20201001141930",
"owner_name": "DBAPI_USER",
"operation": "IMPORT",
"job_mode": "TABLE",
"state": "EXECUTING",
"degree": 1,
"attached_sessions": 0,
"datapump_sessions": 2,
"job_state": "EXECUTING",
"links": [
{
"rel": "collection",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001141930/EXPDAT-2020-10-01-11_55_24.LOG"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001141930/IMPDAT-2020-10-01-14_19_30.LOG"
},
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001141930/"
}
]
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
cat > /tmp/payload.json <<EOF
{
"operation": "EXPORT",
"job_mode": "SCHEMA",
"datapump_dir": "TEST_DIR",
"schema_expressions": [
{"expression": "= 'TESTUSER1'"}
]
}
EOF
cat > /tmp/payload.json <<EOF
{
"operation": "EXPORT",
"job_mode": "SCHEMA",
"datapump_dir": "TEST_DIR",
"filter": "TESTUSER1"
}
EOF
curl -ks -X POST \
--user dbapi_user:DbApiUserPassword1 \
--data-binary @/tmp/payload.json \
--header "Content-Type:application/json" \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/ | python3 -mjson.tool
{
"job_name": "DATAPUMP_REST_EXPORT_20201001142402",
"owner_name": "DBAPI_USER",
"operation": "EXPORT",
"job_mode": "SCHEMA",
"state": "EXECUTING",
"degree": 1,
"attached_sessions": 0,
"datapump_sessions": 2,
"job_state": "EXECUTING",
"links": [
{
"rel": "collection",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001142402/EXPDAT-2020-10-01-14_24_02.LOG"
},
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001142402/"
}
]
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
cat > /tmp/payload.json <<EOF
{
"operation": "IMPORT",
"job_mode": "SCHEMA",
"datapump_dir": "TEST_DIR",
"file_name": "EXPDAT01-20201001_14_24_04.DMP",
"schema_expressions": [
{"expression": "= 'TESTUSER1'"}
],
"remap_schemas": [
{
"source": "TESTUSER1",
"target": "TESTUSER2"
}
]
}
EOF
cat > /tmp/payload.json <<EOF
{
"operation": "IMPORT",
"job_mode": "SCHEMA",
"datapump_dir": "TEST_DIR",
"file_name": "EXPDAT01-20201001_14_24_04.DMP",
"filter": "TESTUSER1",
"remap_schemas": [
{
"source": "TESTUSER1",
"target": "TESTUSER2"
}
]
}
EOF
curl -ks -X POST \
--user dbapi_user:DbApiUserPassword1 \
--data-binary @/tmp/payload.json \
--header "Content-Type:application/json" \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/ | python3 -mjson.tool
{
"job_name": "DATAPUMP_REST_IMPORT_20201001143655",
"owner_name": "DBAPI_USER",
"operation": "IMPORT",
"job_mode": "SCHEMA",
"state": "EXECUTING",
"degree": 1,
"attached_sessions": 0,
"datapump_sessions": 2,
"job_state": "EXECUTING",
"links": [
{
"rel": "collection",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001143655/EXPDAT-2020-10-01-14_24_02.LOG"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001143655/IMPDAT-2020-10-01-14_36_55.LOG"
},
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001143655/"
}
]
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
cat > /tmp/payload.json <<EOF
{
"operation": "EXPORT",
"job_mode": "FULL",
"datapump_dir": "TEST_DIR"
}
EOF
cat > /tmp/payload.json <<EOF
{
"operation": "EXPORT",
"job_mode": "FULL",
"datapump_dir": "TEST_DIR",
"threads": 1
}
EOF
curl -ks -X POST \
--user dbapi_user:DbApiUserPassword1 \
--data-binary @/tmp/payload.json \
--header "Content-Type:application/json" \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/ | python3 -mjson.tool
{
"job_name": "DATAPUMP_REST_EXPORT_20201001145804",
"owner_name": "DBAPI_USER",
"operation": "EXPORT",
"job_mode": "FULL",
"state": "EXECUTING",
"degree": 1,
"attached_sessions": 0,
"datapump_sessions": 2,
"job_state": "EXECUTING",
"links": [
{
"rel": "collection",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001145804/EXPDAT-2020-10-01-14_58_04.LOG"
},
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_EXPORT_20201001145804/"
}
]
}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
cat > /tmp/payload.json <<EOF
{
"operation": "IMPORT",
"job_mode": "FULL",
"datapump_dir": "TEST_DIR",
"file_name": "EXPDAT%U-20201001_14_58_04.DMP",
"remap_schemas": [
{
"source": "TESTUSER1",
"target": "TESTUSER3"
}
]
}
EOF
curl -ks -X POST \
--user dbapi_user:DbApiUserPassword1 \
--data-binary @/tmp/payload.json \
--header "Content-Type:application/json" \
https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/ | python3 -mjson.tool
{
"job_name": "DATAPUMP_REST_IMPORT_20201001152105",
"owner_name": "DBAPI_USER",
"operation": "IMPORT",
"job_mode": "FULL",
"state": "EXECUTING",
"degree": 1,
"attached_sessions": 0,
"datapump_sessions": 2,
"job_state": "EXECUTING",
"links": [
{
"rel": "collection",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/"
},
{
"rel": "describedby",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/metadata-catalog/"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001152105/EXPDAT-2020-10-01-14_58_04.LOG"
},
{
"rel": "related",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001152105/IMPDAT-2020-10-01-15_21_05.LOG"
},
{
"rel": "self",
"href": "https://localhost:8443/ords/dbapi_user/_/db-api/stable/database/datapump/jobs/DBAPI_USER,DATAPUMP_REST_IMPORT_20201001152105/"
}
]
}Please to add comments
No comments yet. Be the first to comment!