sqlplus½»»¥½çÃæ´æÔÚµÄÎÊÌâ sqlplusµÄÁ½Öַǽ»»¥Ê½Ê¹Ó÷½Ê½ 1 ͨ¹ýÍⲿÃüÁîÎļþ 2 ͨ¹ý±ê×¼ÊäÈë ÀûÓùܵÀ×öºóÐø´¦Àí ÐèҪעÒâµÄµØ·½ Ò»¸ö¼òµ¥µÄ½Å±¾
1 sqlplus½»»¥½çÃæ´æÔÚµÄÎÊÌâ
sqlplusÊÇORACLEÊý¾Ý¿âµÄ×îÖØÒªµÄ¹Ù·½ÃüÁîÐпͻ§¶ËÈí¼þ£¬ÊÇDBAµÄ±Ø±¸¹¤¾ß£¬Ê¹ÓÃËü¿ÉÒÔÍê³É¼¸ºõÈ«²¿µÄ¹ÜÀíÈÎÎñ¡£È»¶ø£¬sqlplusµÄ½»»¥½çÃæ²¢²»ÊǷdz£ÓѺã¬ÊäÈëÃüÁîʱ²»¾ßÓÐÀúÊ·ÃüÁî¼Ç¼¹¦ÄÜ£»Ä¬ÈϵÄÊä³ö½á¹û¸üÊDz»¿°ÈëÄ¿¡£ÔÚÒ×ÓÃÐÔ·½Ã棬sqlplusȷʵ±Èmysql¿Í»§¶Ë²îÁ˲»ÉÙ¡£
¼ÈÈ»sqlplus½»»¥Ä£Ê½´æÔÚÕâô¶àµÄ²»±ã£¬ÄÇô²»Èç¸É´àÖ±½ÓʹÓ÷ǽ»»¥Ä£Ê½Ê¹ÓÃËü£¬ÔÙ½èÖú²Ù×÷ϵͳÌṩµÄshell¹¤¾ß¼¯À´ÐÖúÍê³É¸ü¸´ÔÓµÄÈÎÎñ¡£sqlplus±¾Éí¾ÍÊÇÖ§³Ö·Ç½»»¥Ê½Ê¹Óõ쬶øÇÒÖ§³ÖµÄ·Ç³£ºÃ£¬·ûºÏÒ»°ãµÄUnixÉè¼ÆÕÜѧ£º´Ó±ê×¼ÊäÈë¶ÁÈ¡ÃüÁ°Ñ½á¹ûдµ½±ê×¼Êä³ö¡£
2 sqlplusµÄÁ½Öַǽ»»¥Ê½Ê¹Ó÷½Ê½
sqlplusÔڷǽ»»¥Ä£Ê½Ï£¬¿ÉÒÔ´ÓÁ½¸öµØ·½ÎªÆäÌṩsqlÃüÁһÊÇͨ¹ýÍⲿÎļþ£¬¶øÊÇͨ¹ý±ê×¼ÊäÈë¡£
2.1 ͨ¹ýÍⲿÃüÁîÎļþ
sqlplus Óû§Ãû/ÃÜÂë@·þÎñÆ÷IP/ÕìÌý·þÎñÃû @ÃüÁîÎļþÃû
ÏÂÃæ¾ÙÒ»¸öÀý×Ó¡£
ÃüÁîÎļþÃûΪ 1.sql£¬ÄÚÈÝÈçÏ£º
select count(*) from dba_objects;
exit;
Ö´ÐÐÃüÁîΪ£º
sqlplus sys/***@172.16.2.190/xgdb.db001.xigang @1.sql
´ËʱִÐÐÍê±Ï»á°Ñ½á¹ûÊä³ö¡£
ÕâÖÖÍⲿÃüÁîÎļþµÄ·½Ê½£¬ÐèÒª½¨Á¢µ¥¶ÀµÄÎïÀíÎļþÀ´´æ´¢ÃüÁÊʺϾ³£Ê¹ÓõĴóÅúÁ¿¹ÜÀíÈÎÎñ¡£
2.2 ͨ¹ý±ê×¼ÊäÈë
¼ÈÈ»sqlplus´Ó±ê×¼ÊäÈëÀ´¶ÁÈ¡ÃüÁÄÇô¾Í¿ÉÒÔÀûÓùܵÀ°ÑÃüÁî·¢Ë͸øËü¡£
echo ÃüÁî | sqlplus Óû§Ãû/ÃÜÂë@·þÎñÆ÷IP/ÕìÌý·þÎñÃû
ÕâÖÖ·½Ê½²»ÐèÒªÔÚÃüÁîÖаüº¬ exit£»,ÒòΪsqlplusÖ´Ðкó×Ô¶¯Í˳ö¡£ÏÂÃæÊǸöÀý×Ó£º
echo 'select count(*) from dba_objects;' | sqlplus sys/***@172.16.2.190/xgdb.db001.xigang as sysdba
ÕâÑùÖ´Ðкó½á¹ûÊä³öµ½ÆÁÄ»£¬ÓÉÓÚsqlÓï¾äÊÇbashÃüÁîµÄ²ÎÊý£¬¶øÕû¸öÃüÁîÐпÉÒÔͨ¹ýbash·½±ãµÄÀúÊ·¼Ç¼À´Öظ´µ÷Óá£ÓÖ¿ÉÒÔ·½±ãµÄʹÓÃÉÏϼýÍ·À´Öظ´Ê¹ÓÃÖ´ÐйýµÄsqlÓï¾äÁË¡£
3 ÀûÓùܵÀ×öºóÐø´¦Àí
¼ÈÈ»sqlplus°Ñ½á¹ûÊä³öµ½Á˱ê×¼Êä³ö£¬ÄÇô¾Í¿ÉÒÔ½èÖú¹ÜµÀ£¬Ê¹ÓÃsed,awkµÈÎÄ×Ö´¦Àí¹¤¾ßÀ´µÃµ½ÏëÒªµÄÊä³ö¡£
echo -e 'set pagesize 0\nselect table_name,owner from dba_tables;' | sqlplus -S sys/***@172.16.2.190/xgdb.db001.xigang as sysdba | awk '{printf("%-10d%-30s%-20s\n",NR,$1,$2);}'
4 ÐèҪעÒâµÄµØ·½
ʹÓÃÍⲿÎļþʱ£¬ÎļþÖеÄÃüÁîÓë½»»¥Ê½Ê¹ÓÃÍêÈ«Ïàͬ£¬ÎÞÐèµ£ÐÄ¡£
ʹÓÃecho + ¹ÜµÀÊäÈëʱ£¬Òª±ÜÃâ bash Ôª×Ö·ûµÄ¸ÉÈÅ¡£Ò»¶¨Òª°ÑsqlÃüÁîʹÓõ¥ÒýºÅ»òË«ÒýºÅ±£»¤ÆðÀ´¡£µ±sqlÃüÁîÖÐÓе¥ÒýºÅʱ£¬Ó¦Ñ¡ÔñʹÓÃË«ÒýºÅ±£»¤¡£Èç
echo "insert into t1(name) values('°Â°ÍÂí');" | sqlplus ...
ÁíÍ⣬sqlplus²»ÔÊÐí°ÑsqlplusÖ¸ÁîºÍsqlÃüÁî»ìºÏÔÚÒ»ÐÐʹÓ᣶øÇÒsqlÃüÁî±ØÐëÒÔ;½áβ¡£ÕâÑù±ØÐëʹÓÃecho -e Ñ¡ÏîÀ´¿ªÆô°Ñ¡±\n¡±½âÊͳɻ»Ðзû¡£ÀýÈç
echo -e 'set pagesize 0\nset linesize 100\nselect * from dba_objects;' | sqlplus ...
5 Ò»¸ö¼òµ¥µÄ½Å±¾
ÉÏÊöÃüÁîÐз½Ê½ËäÈ»¿ÉÒÔ·½±ãµÄͨ¹ýbashµÄÀúÊ·¼Ç¼¹¦Äܵ÷ÓÃÖ´ÐйýµÄsqlÓï¾ä£¬µ«ÊÇÃüÁîÐÐÖгýÁËsqlÓï¾ä»¹ÓдóÁ¿µÄÆäËûÄÚÈÝ£¬ÏԵ÷±Ëö¡£ËùÒÔ£¬Ð´Ò»¸öС½Å±¾£¨ÎļþÃûΪsql£©»áÈõ÷ÓÃÆðÀ´·Ç³£·½±ã£¬ÈçÏ£º
#!/bin/bash - if [ $# -ne 1 ] then echo "Usage: $0 'SQL statement'" else SQL="set pagesize 0\nset linesize 300\n$1" echo -e "$SQL" echo -e "$SQL" | sqlplus -S sys/***@172.16.2.190/xgdb.db001.xigang as sysdba fi
ÕâÑùµ÷ÓÃÆðÀ´¾ÍÏñÏÂÃæÒ»Ñù¡£
sql 'select * from dba_objects;'
ÕâÑùÏԵ÷dz£¸É¾»ÀûÂ䣬¶øÇÒÒ²²»»áÔÚÀúÊ·ÃüÁîÖмÇÏÂORACLEµÄÕË»§ÐÅÏ¢£¬Ïà¶ÔÒ²°²È«¡£