Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Oded Raz & Zohar Elkayam
Brillix
www.realdbamagic.com
Twitter: @realmgic
SQLcl:
The Next Generation of SQL*Plus?
About Oded Raz
http://brillix.co.il2
• Founder of Brillix and co-CEO
• Oracle ACE Director since 2010
• Over 20 years of e...
About Zohar Elkayam
• CTO at Brillix
• Oracle ACE Associate since 2014
• DBA, team leader, Oracle University instructor an...
Agenda
• SQL*Plus and what is it good for
• Introducing SQLcl
• How to install and how to use SQLcl
• SQLcl new features a...
SQL*Plus
• Introduced in Oracle 5 (1985)
• Looks very simple but has tight integration with other Oracle
infrastructure an...
What’s Wrong With SQL*Plus?
• Nothing really wrong with SQL*Plus – it is being updated constantly
but it is missing a lot ...
Introducing SQLcl
• SQLcl is a new command line interface (CLI) for SQL users and
DBAs
• It is part of the SQL Developer s...
Introducing SQLcl (cont.)
• It’s still in the early adopter version (current version:
4.2.0.15.121.1046, May 4, 2015)
• Us...
Current Status
• Early Adopter version
• QA still logging bugs from SQL*Plus regression tests
• Adding support for existin...
Installing
• Download from: SQL Developer Download page
• Unzip the file
• Run it
http://brillix.co.il10
Prerequisites
• Very small footprint: 11MB
• Needs Java 7/8 runtime environment (no need for JDK)
• No need for installer ...
Connecting to the Database
• No need for Oracle Client
• Thin connection: EZConnect connect style out of the box
connect h...
Object Completion and Easy Edit
• Use the tab key to complete commands
• Can be used to list tables, views or other queria...
Command History
• 100 command history buffer
• Commands are persistent between sessions (watch out for security!)
• Use UP...
Describe, Information and info+
• Describe lists the column of the tables just like SQL*Plus
• Information shows column na...
Repeat
• Repeats the current SQL or PL/SQL in the buffer the specified
number of times with specified sleep intervals
• Lo...
Repeat as “tail -f alert.log”
• Jeff Smith (@thatjeffsmith) had a cool implementation for the
repeat command on Oracle 12c...
DDL and DBMS_METADATA
• Extract DDL of objects using a single command
DDL <object name>
• Uses DBMS_METADATA.GET_DDL to ex...
Alias
• Alias is a command which allows us to save a SQL, PL/SQL or
SQL*Plus scripts, and assign it a shortcut command.
• ...
Alias Example
• We want to show the DDL command without the segment part but the
transformation is on the session level.
•...
CTAS
• Extract DDL for a table and use it to recreate another table
using select * from
• Useful when we want to copy a ta...
SQLPATH
• SQLPATH is the order in which the CLI is looking for sql scripts
(both in SQL*Plus and SQLcl)
• Running a script...
CD command
• When we want to change the path in SQL*Plus, we usually can’t.
• SQLcl comes with CD command to change that p...
Bridge
• Used mainly to script data move between two connections
from the client (no server direct server connections)
• T...
Bridge (cont.)
• Uses JDBC connection string to connect our client to the remote
connection.
• Creates a table with the re...
SQL*Plus Output
• SQL*Plus output is generated as text tables
• We can output the data as HTML but the will take over
ever...
Generating Pretty Output
• Outputting query results becomes easier with the “set
sqlformat” command (also available in SQL...
Generating Other Useful Outputs
• We can generate loader ready output (with “|” as a delimiter)
• We can generate insert c...
Load Data From CSV File
• Loads a comma separated value (csv) file into a table
• The first row of the file must be a head...
Conclusion
• We talked about SQL*Plus and SQLcl differences
• We saw how to start working with SQLcl
• We tried some of it...
Q&A
http://brillix.co.il31
Useful Resources
• Kris Rice (@krisrice) manage Oracle SQL Developer
Blog: http://krisrice.blogspot.com/
• Jeff Smith (@th...
Thank You
Zohar Elkayam
twitter: @realmgic
Zohar@Brillix.co.il
www.realdbamagic.com
http://brillix.co.il33
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
SQLcl overview - A new Command Line Interface for Oracle Database
Next
Download to read offline and view in fullscreen.

4

Share

Download to read offline

SQLcl the next generation of SQLPlus?

Download to read offline

This is a presentation I gave at UKOUG user conference in Scotland. SQLcl is a new command line tool from the developers of SQL Developer in Oracle, This presentation is accompanied by live demo that can be downloaded from my blog.

Related Books

Free with a 30 day trial from Scribd

See all

SQLcl the next generation of SQLPlus?

  1. 1. Oded Raz & Zohar Elkayam Brillix www.realdbamagic.com Twitter: @realmgic SQLcl: The Next Generation of SQL*Plus?
  2. 2. About Oded Raz http://brillix.co.il2 • Founder of Brillix and co-CEO • Oracle ACE Director since 2010 • Over 20 years of experience as DBA • Identity & Access solution specialist
  3. 3. About Zohar Elkayam • CTO at Brillix • Oracle ACE Associate since 2014 • DBA, team leader, Oracle University instructor and a senior consultant for over 17 years • Editor of ilDBA – Israel Database Community website • Blogger – www.realdbamagic.com http://brillix.co.il3
  4. 4. Agenda • SQL*Plus and what is it good for • Introducing SQLcl • How to install and how to use SQLcl • SQLcl new features and demo • Q&A http://brillix.co.il4
  5. 5. SQL*Plus • Introduced in Oracle 5 (1985) • Looks very simple but has tight integration with other Oracle infrastructure and tools • Very good for reporting, scripting, and automation • Replaced old CLI tool called … UFI (“User Friendly Interface”) http://brillix.co.il5
  6. 6. What’s Wrong With SQL*Plus? • Nothing really wrong with SQL*Plus – it is being updated constantly but it is missing a lot of functionality • SQL*Plus forces us to use GUI tools to complete some basic tasks • Easy to understand, a bit hard to use • Not easy for new users or developers http://brillix.co.il6
  7. 7. Introducing SQLcl • SQLcl is a new command line interface (CLI) for SQL users and DBAs • It is part of the SQL Developer suite – developed by the same team: Oracle Database Development Tools Team • Can do most of what SQL*Plus does and much more • Minimal installation, minimal requirements http://brillix.co.il7
  8. 8. Introducing SQLcl (cont.) • It’s still in the early adopter version (current version: 4.2.0.15.121.1046, May 4, 2015) • Uses Java, one version for Windows, Linux and OS X • Planned to be shipped out with Oracle Database 12cR2 http://brillix.co.il8
  9. 9. Current Status • Early Adopter version • QA still logging bugs from SQL*Plus regression tests • Adding support for existing SQL*Plus commands/syntax • Adding new commands • But can it do...? • Yes • Not yet • No http://brillix.co.il9
  10. 10. Installing • Download from: SQL Developer Download page • Unzip the file • Run it http://brillix.co.il10
  11. 11. Prerequisites • Very small footprint: 11MB • Needs Java 7/8 runtime environment (no need for JDK) • No need for installer or setup • No need for any other additional software or licence http://brillix.co.il11
  12. 12. Connecting to the Database • No need for Oracle Client • Thin connection: EZConnect connect style out of the box connect host:port/service • Support TNS, Thick and LDAP connection when Oracle home detected • Auto-complete connection strings • Can show JDBC for connection information http://brillix.co.il12
  13. 13. Object Completion and Easy Edit • Use the tab key to complete commands • Can be used to list tables, views or other queriable objects • Can be used to replace the * with actual column names • Use the arrow keys to move around the command • Use CTRL+W and CTRL+S to jump to the beginning/end of commands http://brillix.co.il13
  14. 14. Command History • 100 command history buffer • Commands are persistent between sessions (watch out for security!) • Use UP and DOWN arrow keys to access old commands • Usage: history history usage History script history full History clear [session?] • Load from history into command buffer: history <number> http://brillix.co.il14
  15. 15. Describe, Information and info+ • Describe lists the column of the tables just like SQL*Plus • Information shows column names, default values, indexes and constraints. • In 12c database information shows table statistics and In memory status • Works for table, views, sequences, and code objects • Info+ shows additional information regarding column statistics and column histograms http://brillix.co.il15
  16. 16. Repeat • Repeats the current SQL or PL/SQL in the buffer the specified number of times with specified sleep intervals • Looks like the “watch” command in Linux • Usage: repeat <iterations> <sleep> http://brillix.co.il16
  17. 17. Repeat as “tail -f alert.log” • Jeff Smith (@thatjeffsmith) had a cool implementation for the repeat command on Oracle 12c: • tail –f on the alert log SELECT To_Char(Originating_Timestamp, 'DD-MON-YYYY HH24:MI:SSxFF') Time_Entry, substr(trim(message_text), 0, 75) || '...' ABBR_MESSAGE_TEXT FROM X$dbgalertext ORDER BY Originating_Timestamp DESC, indx desc fetch FIRST 15 ROWS ONLY; http://brillix.co.il17
  18. 18. DDL and DBMS_METADATA • Extract DDL of objects using a single command DDL <object name> • Uses DBMS_METADATA.GET_DDL to extract the object • We can modify the output using TRANSFORM_PARAM: exec dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SEGMENT_ATTRIBUTES', false); http://brillix.co.il18
  19. 19. Alias • Alias is a command which allows us to save a SQL, PL/SQL or SQL*Plus scripts, and assign it a shortcut command. • Command can receive parameters using bind variables • Aliases are session persistent and being saved • Usage: • alias - for list of aliases • alias list <aliasName> - for definition • Setting an alias: • alias my_command=sql; (terminate with ;) • alias my_code=begin command; end; (terminate with /) http://brillix.co.il19
  20. 20. Alias Example • We want to show the DDL command without the segment part but the transformation is on the session level. • We set this alias: alias ddl_fix_output=begin dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SQLTERMINATOR', TRUE); dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SEGMENT_ATTRIBUTES', false); end; / http://brillix.co.il20
  21. 21. CTAS • Extract DDL for a table and use it to recreate another table using select * from • Useful when we want to copy a table with partitions or a primary key • Might not stay in the final version – have a lot of small and annoying issues • Usage: ctas table new_table http://brillix.co.il21
  22. 22. SQLPATH • SQLPATH is the order in which the CLI is looking for sql scripts (both in SQL*Plus and SQLcl) • Running a script not from the path requires full path location • Default search order is: 1. Current cd directory 2. Current running directory 3. The rest of the sqlpath • Show SQLPATH will show that current search path http://brillix.co.il22
  23. 23. CD command • When we want to change the path in SQL*Plus, we usually can’t. • SQLcl comes with CD command to change that path and make it easier to run scripts: • Usage: cd /u01/app/oracle/scripts Show SQLPATH http://brillix.co.il23
  24. 24. Bridge • Used mainly to script data move between two connections from the client (no server direct server connections) • The following functionality is available: 1. Query tables in other connections 2. Query tables in multiple connections in the same statement 3. Insert data from one connection into another 4. Create a table and insert data into it from another connection http://brillix.co.il24
  25. 25. Bridge (cont.) • Uses JDBC connection string to connect our client to the remote connection. • Creates a table with the results in the database • Usage: BRIDGE <targetTableName> as "<jdbcURL>"(<sqlQuery>); • Example: BRIDGE dept_remote as “jdbc:oracle:thin:scott/tiger@localhost:1521/orcl"( select * from dept); http://brillix.co.il25
  26. 26. SQL*Plus Output • SQL*Plus output is generated as text tables • We can output the data as HTML but the will take over everything we do in SQL*Plus (i.e. describe command) • We can’t use colors in our output • We can’t generate other types of useful outputs (CSV is really hard for example) http://brillix.co.il26
  27. 27. Generating Pretty Output • Outputting query results becomes easier with the “set sqlformat” command (also available in SQL Developer) • We can create a query in the “regular” way and then switch between the different output styles: • ANSIConsole • Fixed column size output • XML or JSON output • HTML output generates a built in search field and a responsive html output for the result only http://brillix.co.il27
  28. 28. Generating Other Useful Outputs • We can generate loader ready output (with “|” as a delimiter) • We can generate insert commands • We can easily generate CSV output • Usage: set sqlformat { csv,html,xml,json,ansiconsole,insert, loader,fixed,default} http://brillix.co.il28
  29. 29. Load Data From CSV File • Loads a comma separated value (csv) file into a table • The first row of the file must be a header row and the file must be encoded UTF8 • The load is processed with 50 rows per batch • Usage: LOAD [schema.]table_name[@db_link] file_name http://brillix.co.il29
  30. 30. Conclusion • We talked about SQL*Plus and SQLcl differences • We saw how to start working with SQLcl • We tried some of its new features • There are more new features coming and since it's and EA version, more bug fixes to come http://brillix.co.il30
  31. 31. Q&A http://brillix.co.il31
  32. 32. Useful Resources • Kris Rice (@krisrice) manage Oracle SQL Developer Blog: http://krisrice.blogspot.com/ • Jeff Smith (@thatjeffsmith) Oracle SQL Developer Product Manager at Oracle Blog: http://www.thatjeffsmith.com/ • Barry McGillin (@bamcgill) – Oracle Blog: http://barrymcgillin.blogspot.com/ http://brillix.co.il32
  33. 33. Thank You Zohar Elkayam twitter: @realmgic Zohar@Brillix.co.il www.realdbamagic.com http://brillix.co.il33
  • ZvikaGutkin

    Sep. 26, 2015
  • ThierryGascard

    Sep. 1, 2015
  • trosh

    Sep. 1, 2015
  • RamKedem

    Jun. 16, 2015

This is a presentation I gave at UKOUG user conference in Scotland. SQLcl is a new command line tool from the developers of SQL Developer in Oracle, This presentation is accompanied by live demo that can be downloaded from my blog.

Views

Total views

5,828

On Slideshare

0

From embeds

0

Number of embeds

2,264

Actions

Downloads

58

Shares

0

Comments

0

Likes

4

×