Man Okcli: an Oracle® Database Command Line Interface
Open sourcing a new database tool.
Being able to effectively explore your data-schemas as they grow in both size and complexity is hugely useful, particularly for new team members.
Oracle® database is among the different database technologies used as a storage backend by many services and applications at Man Alpha Tech.
Not having used Oracle database before, I was struck by an opportunity to improve the quality of the tooling available relative to that of other RDBMSs. After looking into alternatives, we decided the payoff from building a CLI tool for it would be worth the effort and so we rolled a terminal-client for interacting with Oracle database based off of MyCli, a similar tool for interacting with MySQL DB.
Man Okcli is a drop in replacement for sqlplus that is easy to use, highly customisable and has support for:
- schema-aware autocomplete on SQL statements
- syntax highlighting
- table descriptions that include the primary-key columns and foreign key constraints
- vim/emacs key-bindings
- command history
- many output formats (csv, json, jira, wiki, etc.)
- saving/loading your own named queries
- listing the schemas and the tables in each schema
- shell commands
This is what the app looks with some dummy data:
Opinions expressed are those of the author and may not be shared by all personnel of Man Group plc (‘Man’). These opinions are subject to change without notice, are for information purposes only and do not constitute an offer or invitation to make an investment in any financial instrument or in any product to which the Company and/or its affiliates provides investment advisory or any other financial services. Any organisations, financial instrument or products described in this material are mentioned for reference purposes only which should not be considered a recommendation for their purchase or sale. Neither the Company nor the authors shall be liable to any person for any action taken on the basis of the information provided. Some statements contained in this material concerning goals, strategies, outlook or other non-historical matters may be forward-looking statements and are based on current indicators and expectations. These forward-looking statements speak only as of the date on which they are made, and the Company undertakes no obligation to update or revise any forward-looking statements. These forward-looking statements are subject to risks and uncertainties that may cause actual results to differ materially from those contained in the statements. The Company and/or its affiliates may or may not have a position in any financial instrument mentioned and may or may not be actively trading in any such securities. This material is proprietary information of the Company and its affiliates and may not be reproduced or otherwise disseminated in whole or in part without prior written consent from the Company. The Company believes the content to be accurate. However accuracy is not warranted or guaranteed. The Company does not assume any liability in the case of incorrectly reported or incomplete information. Unless stated otherwise all information is provided by the Company. Past performance is not indicative of future results.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.