Cli-IDE for Oracle DBMS. Well. Almost IDE

Good day.





The first question is: why, there is Toad / SQL-developer / PLSQL-developer, etc. graphical ide-environments.





Well. Yes. There is. However, not everyone needs them as a means of working with oracle-subd objects.





Those. I'm here, in this article - not just for oracle-developers I will tell you something. Rather for dba, i.e. people whose work with sbd objects is much more specific, they do not need an ide-combine like Toad / SQL-developer / PLSQL-developer;





Second moment: now: remote location, everywhere and everywhere. In this regard, access to work is organized remotely.





Or: through something like VDI / RDP. Or: a working laptop is issued and from it, from it - work.





In the first case - well, it often means the graphical interface of the remote desktop and: Windows and resource-limited.





In the second case: well, organizations often try to save money here too - they will give out something with 8GB of RAM and - as you want, work on it. Ie: firefox / chrome, with N >> 10 tabs, some Toad / SQL-developer / PLSQL-developer, skype / zoom, something else.





In both cases: the question arises - how can I save money on resources, for example, on an IDE for oracle-subd.





Well, as it seems to me, there is an interesting project under this request: VoraX





The project is currently abandoned, alas.





For a number of reasons, I want to draw the community's attention to this project. On the one hand, so that more people see it, from different angles, and something, which is for / against seen / appreciated.





- , , , , - , . - . : : - .





- , , -, -.





- / - , .





- - vim-. : vim-, -. - -, , , - sqlplus, .





.. - - , : , . dbext, vim-dadbod, Emacs -: - , -: -, , , , .





, -, - gem- "vorax", . - , , , racc



gem. , gem-, ruby-dev -, .





: , : ruby



, vim



ruby, oracle- ( -).





LinuxMint - , :





apt install gawk bison libffi-dev libgdbm-dev libncurses-dev libsqlite3-dev libyaml-dev zlib1g-dev -y 
apt install sqlite3 libgmp-dev libreadline-dev checkinstall libxml2-dev libxslt-dev -y 
apt install build-essential ruby-dev pkg-config -y
ruby -v
gem install vorax
gem list | sort
      
      



vim-, ruby:





mkdir ~/Vim4VoraX; cd ~/Vim4VoraX
git clone https://github.com/vim/vim.git
cd ./vim/src/
#make distclean
./configure --enable-rubyinterp --with-features=huge
make
./vim --version | grep ruby; pwd
sudo apt remove vim
sudo checkinstall --pkgname vim4vorax4 --pkgversion 8.2.0 --install
#dpkg -r vim4vorax4
#in vim:
#:ruby puts RUBY_VERSION
      
      



- vorax- vim, , kish4ever:





cd ~/.vim/bundle && git clone https://github.com/kakash1hatake/vorax4.git
      
      



- , , . . - vim- - .





. - , - :





/vorax4/doc/vorax.txt



- : , vim-.





, :





  1. : , xml- profiles.xml



    , , , . -, , : /vorax4/vorax/ruby/lib/vorax/profiles_manager.rb







  2. , -, (: , vim-) . : - , ( WHERE ROWNUM <= :limit



    ), , , - . . set- - . , - , , . - , . - .





  3. : <Leader>E



    : ..: sanbdox-. -, - -. , - -, , , - - , - . Also: sigint 2,9 - -. Also: , c ( , visual- ), vim-.





  4. plsql-, , , ( vim-), "Enter". - , , - - , as is, :





The default key mapping for compiling is c. "C" stands, obviously, for "C"ompile. For convenience, you may also use @. Two things happen when a PLSQL object is compiled:





* the buffer content is sent as it is to the server.









* as soon as the buffer content is executed, Vorax will check the ALL_ERRORS view to see if any relevant errors exist. If such errors are found, they are loaded into a Vim quickfix window, along with the error line, error column and the message itself.









Note: Pay attention that during the compilation of an PLSQL object, the substitution variables feature is disabled.





(. ..):





- . - . , - (/ / /) - . - : /vorax4/vorax/ruby/lib/vorax/sqlplus.rb



, , , ( ):





, -, , - , - -. - , , .





.





, , -, SQLcl



: -, . : - - /vorax4/vorax/ruby/lib/vorax/sqlplus.rb



sqlplus



, sql



;





, / : SQLcl - <SQLcl->/sqlcl/bin/sql



, -, .





, , : - /sqlcl/bin/sql



- .





, - SQLcl , -, #set blockterm



, , .





, , run <SQLcl->/sqlcl/bin/sql



- -, .., :





function run {
 if  [  "m$SQLCL_DEBUG" != "m" ]; then
   echo "JAVA=$JAVA"
   echo "JAVA_OPTS=${APP_VM_OPTS[@]}"
   echo "DEBUG=$DEBUG"
   echo "CPLIST=$CPLIST"
   echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
   echo "exec $JAVA  $CUSTOM_JDBC $CYGWIN "${APP_VM_OPTS[@]}" -client $SQLCL_DEBUG -cp "$CPLIST" oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli "

 fi
exec $JAVA  $CUSTOM_JDBC $CYGWIN "${APP_VM_OPTS[@]}" -client $SQLCL_DEBUG -cp "$CPLIST" oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli "$@"
}
      
      



, - .





: / - .





, .





, /, / .





, - SQLcl, , , ?





Also, the question is, what other options are there / know the options for working with oracle-subdata through cli-applications, comparable or more advanced than Vorax, i.e.: connection management, object browser, and that's all.





Thank you for your attention, your time.





UPD1: example of VoraX installation in CYGWIN





UPD2: Found out that code completion, omnicompletion works, in insert mode, by ctrl-x, ctrl-o it turns out like this:












All Articles