SqlCl alapok
Az Oracle SQL Developer Command Line (SQLcl) egy ingyenes parancssori felület az Oracle Database számára, amely egyesíti az SQL*Plus és az SQL Developer erejét.Lehetővé teszi az SQL és PL/SQL interaktív vagy kötegelt végrehajtását. Az SQLcl soron belüli szerkesztést, utasításkiegészítést és parancs-visszahívást biztosít a szolgáltatásokban gazdag élmény érdekében, valamint támogatja a korábban írt SQL*Plus szkripteket.
Az SQLcl egy Java alkalmazás, amelyhez a JRE 8 vagy JDK 8 telepítve és megfelelően konfigurálva kell a gépen.
Az sqlcl segítségével lekérdezhetjük, módosíthatjuk, exportálhatjuk és importálhatjuk az adatokat, valamint futtathatunk szkripteket és fájlokat. Az sqlcl előnyei közé tartozik a könnyű telepítés, a gyors teljesítmény, a modern funkciók és a személyre szabhatóság.
Az oracle sqlcl egy ingyenes parancssori felület az Oracle adatbázis számára. Lehetővé teszi, hogy interaktívan vagy kötegelt módon futtasson SQL és PL/SQL utasításokat.
Az sqlcl támogatja a soron belüli szerkesztést, az utasítások befejezését, a parancsok visszahívását, és egy gazdag élményt nyújt, miközben kompatibilis a korábban írt SQL*Plus szkriptekkel is.
Az sqlcl új parancsokat is tartalmaz, mint például a CTAS, DLL, Repeat, ALIAS, SCRIPT, FORMAT és még sok más. Emellett lehetőség van javascriptet futtatni az sqlcl-ben, hogy manipulálja a lekérdezési eredményeket, dinamikus parancsokat építsen, interakcióba lépjen a munkamenettel és sok másra is.
Az sqlcl használatához szükségünk van egy Oracle adatbázis kapcsolatra.
Telepítés
Telepítő külön is letölthető innen : SQLcl home page, de az SQLdeveloper és az oracle cliens nek is része.
sqlcl-2*.*.*.*.zip
Beállítás:
set PATH=<JAVA_HOME>\bin;%PATH%
Az ellenőrzés:
where java
java -version
TNS ellenőrzés
java -version
TNS ellenőrzés
SQL> show tns
Használat
A program indítása:
-- adatbázisba belépés nélkül indítás
SQL/nolog
-- majd adatbázisba belépés
SQL> CONNECT nev/jelszo@szerver:1521/dbnev
SQL> set autocommit 1000 -- <number>
-- egyből adatbázisba belépéssel indítás
sql admin/password@examplehost:1522/yourservicename
-- egyből adatbázisba belépés és sql parancs állományfuttatása
sql asmin/password@111.22.33.44:1521/sid @C:\sql_scripts\initial_script.sql
-- Elérési úttal történő indítás (telepítés függvényében) Például
c:\Users\kecskemetil\Documents\prg\sqldeveloper214\sqldeveloper\bin\sql.exe
-- SQL parancs file tartalom futtatása
SQL> @c:\Users\kecskemetil\Documents\munka\xls\proba_tmp\N_TOPO_insert.sql
Alap beállítások sql futtatás előtt:
SET ECHO OFF
SET VERIFY OFF
SET TERM OFF
SET SQLFORMAT default
DEFINE pass=hr
DEFINE tbs=USERS
DEFINE ttbs=TEMP
DEFINE log_path=C:\OraProject\log
DEFINE spool_file = &log_path\hr_main.log
SPOOL &spool_file
Paraméterek megjelenítése
show loadformat
show CONNECTION --- db connection
show ENCODING --- Show the encoding which is set for the client
show ENCODINGS --- Show the available encodings for the client
Show INSTANCE --- Show the instance of the database that the client is connected to
Show JAVA --- Java JRE properties, including, java location, version and platform
Show JDBC --- Connection details including versions (of driver and database) and URL
Show NLS --- Show NLS parameters set for the current session
Show SPOO[L]
Show SPPARAMETERS [parameter_name]
Show SQLCODE
Show TNS --- Location of tnsnames.ora and list of aliases
Show USER --- curent user
Show VERSION --- Show the version of SQLcl
show ERR[ORS] [{FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER
| VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS} [schema.]name]
show keymap
Show INSTANCE --- Show the instance of the database that the client is connected to
Show JAVA --- Java JRE properties, including, java location, version and platform
Show JDBC --- Connection details including versions (of driver and database) and URL
Show NLS --- Show NLS parameters set for the current session
-- üzemmód bekapcsolás
set statusbar on
-- lista alehetőségekről használatról
show statusbar
-- egyes elemek bekapcsolása
set statusbar add txn
set statusbar default
set statusbar default dbid username txn
set highlighting on
SQL> spoll allomanynev
..
-- üzemmódba kilépés
SQL> spool off
kimenet fájlba mentése:
a mentés megkezdése: SPOOL fajlnev.txt
szkript futtatása fájlból:
START eleresiut/parancsfileneve.sql
a mentés befejezése: SPOOL OFF
-- elemzésnél hasznos lehet az eredmény rekordszám korlátozása
SQL> SELECT * FROM all_objects fetch FIRST 10 ROWS ONLY;
Eddigi munkánk vissza olvasása (history)
History #
history full
history usage
set history limit 500
--- adatbázis elérés ellenőrzése
SQL> tnsping pdbdev
Parancs soros indítás minta
sql /nolog
SQL> CONNECT nvri_dw_dw@//idomdb-ldd-02:1521/sf_f2fdb3
SQL> SET sqlformat csv
SQL> cd /Users/
SQL> spool objects.csv
SQL> SELECT * FROM all_objects fetch FIRST 10 ROWS ONLY;
----
truncate table emp;
set load batch_rows 100 batches_per_commit 100 date dd-mon-rr mapnames (EMPLOYEE_NO=empno, EMPLOYEE_NAME=ename)
load table testuser1.emp c:\temp\EMP_DATA_TABLE.csv
----
SET LOADFORMAT DELIMITED ENCLOSURES <>
unload table_name dir dir_path_name
UNLOAD ZZ_N_TOPO dir c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp
---- beállítás
D:\>chcp 65001
Active code page: 65001
D:\>set NLS_LANG=.al32utf8
D:\>set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
D:\>sql -s 2@pdb
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Ianuarius 10, 2022 3:16:59 PM oracle.dbtools.raptor.scriptrunner.cmdline.SQLCliOptions processNLSLANG
INFO: NLS_LANG is set, but not valid. Ignoring.
--- teszt
SQL> select sys_context('userenv','language') nls_lang, chars, dump(chars, 1016) dump_chars from (select 'Ω①₿½¼' chars from dual);
---- visszaállítás
SQL> exit
D:\>chcp 850
Active code page: 850
D:\>set NLS_LANG=.we8pc850
D:\>set JAVA_TOOL_OPTIONS=-Dfile.encoding=IBM850
D:\>sql -s 2@pdb
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=IBM850
SQL> select sys_context('userenv','language') nls_lang, chars, dump(chars, 1016) dump_chars
2* from (select 'Ω①₿½¼' chars from dual);
-----
---- BAT
chcp 65001
set NLS_LANG=.al32utf8
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
c:\Users\kecskemetil\Documents\prg\sqldeveloper231\sqldeveloper\bin\sql.exe nev@jelsz/db2:1521/db2 @c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp\sql_file\kl_nevj_tbl_mentes.sql
pause
---- SQL
SET ECHO OFF
SET VERIFY OFF
SET TERM OFF
SET FEEDBACK OFF
SET LOADFORMAT SET ECHO OFF
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24.MI.SS';
--- BLOG mező miatt
SET SQLFORMAT insert;
SPOOL c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp\DB_N_TOPO_insert.sql
-- select * from N_DW.N_TOPO;
SPOOL OFF
set loadformat delimited delimiter ¤ ENCLOSURES OFF ;
--- mentés: táblák
UNLOAD N_DW.ETKAP dir c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp
exit
----
set load batch_rows 1000 batches_per_commit 100
set loadformat delimited delimiter ¤ ENCLOSURES OFF ;
LOAD ZZ2_DW_LAKOHELY c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp\ZZ2_DW_LAKOHELY_DATA_TABLE_2.csv
SQL> LOAD tabla_neve demo_load objects.csv
SQL> LOAD HR.EMPLOYEES C:\TABLESEMPLOYEES_DATA_TABLE.csv
SQL> set loadformat delimited
7369,"SMITH","CLERK",7902,17-DEC-80,800,,20,5555555555554444
SQL> set loadformat delimited enclosures <> line_end {eol}
7369,<SMITH>,<CLERK>,7902,17-DEC-80,800,,20,5555555555554444{eol}
-- alapbeállítások visszaállítása
set loadformat default
bridge targettable as "jdbcURL" (query)[modifier];
bridge zz_all_tab_fejl as "jdbc:oracle:thin:nev_dm/jelszo_123@szerv:1521/db3"(select * from all_tables);
BRIDGE table1 as "jdbc:oracle:thin:scott/tiger@localhost:1521:orcl"(select * from dept);
bridge TLOCATIONID_EXPORT as "jdbc:oracle:thin:USER/USER@172.20.0.64:1521/DBPRO"(select * from TLOCATIONID_EXPORT);
BRIDGE zz_all_tab_fejl as "jdbc:oracle:thin:nevjfejl/jelsz@db2:1521:db2"(select * from all_tables);
Formátum megadás
SET SQLFORMAT default;
SET SQLFORMAT ansiconsole;
SET SQLFORMAT fixed;
SET SQLFORMAT csv;
SET SQLFORMAT loader;
SET SQLFORMAT delimited;
SET SQLFORMAT insert;
SET SQLFORMAT json;
SET SQLFORMAT json-formatted;
SET SQLFORMAT xml;
SET SQLFORMAT html;
SET SQLFORMAT text; (undocumented)
--
SELECT /*ansiconsole*/ * FROM regions;
SELECT /*fixed*/ * FROM regions;
SELECT /*csv*/ * FROM regions;
SELECT /*loader*/ * FROM regions;
SELECT /*delimited*/ * FROM regions;
SELECT /*insert*/ * FROM regions;
SELECT /*json*/ * FROM regions;
SELECT /*json-formatted*/ * FROM regions;
SELECT /*xml*/ * FROM regions;
SELECT /*html*/ * FROM regions;
SELECT /*text*/ * FROM regions;
Link:
https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/download/
https://docs.oracle.com/en/database/oracle/sql-developer-command-line/21.2/sqcug/working-sqlcl.html#GUID-1343FA2B-BDB4-4645-B4D4-CD7C3E200AC9
-- SQL parancs file tartalom futtatása
SQL> @c:\Users\kecskemetil\Documents\munka\xls\proba_tmp\N_TOPO_insert.sql
Alap beállítások sql futtatás előtt:
SET ECHO OFF
SET VERIFY OFF
SET TERM OFF
SET SQLFORMAT default
DEFINE pass=hr
DEFINE tbs=USERS
DEFINE ttbs=TEMP
DEFINE log_path=C:\OraProject\log
DEFINE spool_file = &log_path\hr_main.log
SPOOL &spool_file
Paraméterek megjelenítése
show loadformat
show CONNECTION --- db connection
show ENCODING --- Show the encoding which is set for the client
show ENCODINGS --- Show the available encodings for the client
Show INSTANCE --- Show the instance of the database that the client is connected to
Show JAVA --- Java JRE properties, including, java location, version and platform
Show JDBC --- Connection details including versions (of driver and database) and URL
Show NLS --- Show NLS parameters set for the current session
Show SPOO[L]
Show SPPARAMETERS [parameter_name]
Show SQLCODE
Show TNS --- Location of tnsnames.ora and list of aliases
Show USER --- curent user
Show VERSION --- Show the version of SQLcl
show ERR[ORS] [{FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER
| VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS} [schema.]name]
show keymap
Show INSTANCE --- Show the instance of the database that the client is connected to
Show JAVA --- Java JRE properties, including, java location, version and platform
Show JDBC --- Connection details including versions (of driver and database) and URL
Show NLS --- Show NLS parameters set for the current session
Státuszsor megjelenítése
Hasznos lehet az utolsó sorban állandóan kapcsolati adatok megjelenítése-- üzemmód bekapcsolás
set statusbar on
-- lista alehetőségekről használatról
show statusbar
-- egyes elemek bekapcsolása
set statusbar add txn
set statusbar default
set statusbar default dbid username txn
set highlighting on
Belépés után eredmény kiíratást állományba menthetjük
-- üzemmódba belépésSQL> spoll allomanynev
..
-- üzemmódba kilépés
SQL> spool off
Elvi stukatúra a használathoz
kimenet fájlba mentése:
a mentés megkezdése: SPOOL fajlnev.txt
szkript futtatása fájlból:
START eleresiut/parancsfileneve.sql
a mentés befejezése: SPOOL OFF
-- elemzésnél hasznos lehet az eredmény rekordszám korlátozása
SQL> SELECT * FROM all_objects fetch FIRST 10 ROWS ONLY;
Eddigi munkánk vissza olvasása (history)
History #
history full
history usage
set history limit 500
--- adatbázis elérés ellenőrzése
SQL> tnsping pdbdev
Minták
Parancs soros indítás minta
sql /nolog
SQL> CONNECT nvri_dw_dw@//idomdb-ldd-02:1521/sf_f2fdb3
SQL> SET sqlformat csv
SQL> cd /Users/
SQL> spool objects.csv
SQL> SELECT * FROM all_objects fetch FIRST 10 ROWS ONLY;
----
truncate table emp;
set load batch_rows 100 batches_per_commit 100 date dd-mon-rr mapnames (EMPLOYEE_NO=empno, EMPLOYEE_NAME=ename)
load table testuser1.emp c:\temp\EMP_DATA_TABLE.csv
----
SET LOADFORMAT DELIMITED ENCLOSURES <>
unload table_name dir dir_path_name
UNLOAD ZZ_N_TOPO dir c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp
---- beállítás
D:\>chcp 65001
Active code page: 65001
D:\>set NLS_LANG=.al32utf8
D:\>set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
D:\>sql -s 2@pdb
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Ianuarius 10, 2022 3:16:59 PM oracle.dbtools.raptor.scriptrunner.cmdline.SQLCliOptions processNLSLANG
INFO: NLS_LANG is set, but not valid. Ignoring.
--- teszt
SQL> select sys_context('userenv','language') nls_lang, chars, dump(chars, 1016) dump_chars from (select 'Ω①₿½¼' chars from dual);
---- visszaállítás
SQL> exit
D:\>chcp 850
Active code page: 850
D:\>set NLS_LANG=.we8pc850
D:\>set JAVA_TOOL_OPTIONS=-Dfile.encoding=IBM850
D:\>sql -s 2@pdb
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=IBM850
SQL> select sys_context('userenv','language') nls_lang, chars, dump(chars, 1016) dump_chars
2* from (select 'Ω①₿½¼' chars from dual);
-----
---- BAT
chcp 65001
set NLS_LANG=.al32utf8
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
c:\Users\kecskemetil\Documents\prg\sqldeveloper231\sqldeveloper\bin\sql.exe nev@jelsz/db2:1521/db2 @c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp\sql_file\kl_nevj_tbl_mentes.sql
pause
---- SQL
SET ECHO OFF
SET VERIFY OFF
SET TERM OFF
SET FEEDBACK OFF
SET LOADFORMAT SET ECHO OFF
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24.MI.SS';
--- BLOG mező miatt
SET SQLFORMAT insert;
SPOOL c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp\DB_N_TOPO_insert.sql
-- select * from N_DW.N_TOPO;
SPOOL OFF
set loadformat delimited delimiter ¤ ENCLOSURES OFF ;
--- mentés: táblák
UNLOAD N_DW.ETKAP dir c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp
exit
----
set load batch_rows 1000 batches_per_commit 100
set loadformat delimited delimiter ¤ ENCLOSURES OFF ;
LOAD ZZ2_DW_LAKOHELY c:\Users\kecskemetil\Documents\munka\xls\foproba_tmp\ZZ2_DW_LAKOHELY_DATA_TABLE_2.csv
Hasznos műveletek
Tábla tartalom mentése állományba (ONLOAD)
Állomány tartalom táblába töltése (LOAD)
SQL> LOAD tabla_neve demo_load objects.csv
SQL> LOAD HR.EMPLOYEES C:\TABLESEMPLOYEES_DATA_TABLE.csv
Töltési formátumok beállítása :
SQL> set loadformat delimited
7369,"SMITH","CLERK",7902,17-DEC-80,800,,20,5555555555554444
SQL> set loadformat delimited enclosures <> line_end {eol}
7369,<SMITH>,<CLERK>,7902,17-DEC-80,800,,20,5555555555554444{eol}
-- alapbeállítások visszaállítása
set loadformat default
Tábla tartalom másik adatbázisba töltése (BRIDGE [JDBC-n])
bridge targettable as "jdbcURL" (query)[modifier];
bridge zz_all_tab_fejl as "jdbc:oracle:thin:nev_dm/jelszo_123@szerv:1521/db3"(select * from all_tables);
BRIDGE table1 as "jdbc:oracle:thin:scott/tiger@localhost:1521:orcl"(select * from dept);
bridge TLOCATIONID_EXPORT as "jdbc:oracle:thin:USER/USER@172.20.0.64:1521/DBPRO"(select * from TLOCATIONID_EXPORT);
BRIDGE zz_all_tab_fejl as "jdbc:oracle:thin:nevjfejl/jelsz@db2:1521:db2"(select * from all_tables);
Formátum megadás
SET SQLFORMAT default;
SET SQLFORMAT ansiconsole;
SET SQLFORMAT fixed;
SET SQLFORMAT csv;
SET SQLFORMAT loader;
SET SQLFORMAT delimited;
SET SQLFORMAT insert;
SET SQLFORMAT json;
SET SQLFORMAT json-formatted;
SET SQLFORMAT xml;
SET SQLFORMAT html;
SET SQLFORMAT text; (undocumented)
--
SELECT /*ansiconsole*/ * FROM regions;
SELECT /*fixed*/ * FROM regions;
SELECT /*csv*/ * FROM regions;
SELECT /*loader*/ * FROM regions;
SELECT /*delimited*/ * FROM regions;
SELECT /*insert*/ * FROM regions;
SELECT /*json*/ * FROM regions;
SELECT /*json-formatted*/ * FROM regions;
SELECT /*xml*/ * FROM regions;
SELECT /*html*/ * FROM regions;
SELECT /*text*/ * FROM regions;
Link:
https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/download/
https://docs.oracle.com/en/database/oracle/sql-developer-command-line/21.2/sqcug/working-sqlcl.html#GUID-1343FA2B-BDB4-4645-B4D4-CD7C3E200AC9
Megjegyzések
Megjegyzés küldése