Ugrás a fő tartalomra

Oracle SqlCl












 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

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






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és
SQL> 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