sqlplusµÄÅäÖÃÎļþΪlogin.sql£¬Í¨³£ÈçÏÂËùʾ´´½¨¸ÃÎļþ£º
set serveroutput on size 1000000
set trimspool on --Â˳ýspoolÊä³öµÄ¿Õ°×
set linesize 200 --ÓÃÓÚÉ趨ÿÐÐÏÔʾµÄ¿í¶È
set pagesize 9999 --ÉèÖÃÏÔʾµÄÒ³Êý
set sqlprompt '_user @ _connect_identifier> '
½«¸ÃÎļþ¸´ÖƵ½Oracle°²×°Ä¿Â¼C:\oracle\product\10.2.0\db_1\BINÏÂÃæ£¬²¢ÉèÖÃWindows»·¾³±äÁ¿£º
set SQLPATH=C:\oracle\product\10.2.0\db_1\BIN
ÕâÑù£¬ÔÙ´ÎÔËÐÐsqlplusʱ£¬¾Í»áʹlogin.sqlÅäÖÃÉúЧ¡£ ......
Ò»¡¢×¼±¸ÌØÊâÊý¾Ý
create table t_escape(s varchar2(50));
--show define -- define "&" (hex 26)
--show escape -- escape off
set define off
set escape on
insert into t_escape values('string&text');
insert into t_escape values('string\&text');
insert into t_escape values('string\%text');
insert into t_escape values('string\_text');
insert into t_escape values('string''text');
set escape off
set define on
insert into t_escape values('Top_Gun');
insert into t_escape values('Tom''s eye');
insert into t_escape values('normal');
insert into t_escape values('100%ps');
insert into t_escape values('12345');
insert into t_escape values('15%30');
insert into t_escape values('%40');
insert into t_escape values('25%XT');
insert into t_escape values('%%A3E5');
set define off
--Ö±½Ó²åÈëÈçÏÂÊý¾Ýʱ£¬²åÈë½á¹û²»ÕýÈ·¡£
insert into t_escape values('T&T Company');
set define on
commit;
/
¶þ¡¢Ê¹ÓÃתÒå²éѯ
[½ç¶¨·û][תÒå·û]%'escape'[½ç¶¨·û] ΪתÒ嶨Ò壬Èç
× ......
1.ÔÚOracle ÖУ¬Äã»áÁ˽⵽£º
ÊÂÎñÊÇÿ¸öÊý¾Ý¿âµÄºËÐÄ£¬ËüÃÇÊÇ“ºÃ¶«Î÷”¡£
Ó¦¸ÃÑÓ³Ùµ½Êʵ±µÄʱ¿Ì²ÅÌá½»¡£²»ÒªÌ«¿ìÌá½»£¬ÒÔ±ÜÃâ¶Ôϵͳ´øÀ´Ñ¹Á¦¡£ÕâÊÇÒòΪ£¬Èç¹û
ÊÂÎñºÜ³¤»òºÜ´ó£¬Ò»°ã²»»á¶ÔϵͳÓÐѹÁ¦¡£ÏàÓ¦µÄÔÔòÊÇ£ºÔÚ±ØÒªÊ±²ÅÌá½»£¬µ«ÊÇ´Ëǰ²»ÒªÌá
½»¡£ÊÂÎñµÄ´óСֻӦ¸Ã¸ù¾ÝÒµÎñÂß¼À´¶¨¡£
Ö»ÒªÐèÒª£¬¾ÍÓ¦¸Ã¾¡¿ÉÄܳ¤Ê±¼äµØ±£³Ö¶ÔÊý¾ÝËù¼ÓµÄËø¡£ÕâÐ©ËøÊÇÄãÄÜÀûÓõŤ¾ß£¬¶ø²»
ÊÇÈÃÄãÍ˱ÜÈýÉáµÄ¶«Î÷¡£Ëø²»ÊÇÏ¡ÓÐ×ÊÔ´¡£Ç¡Ç¡Ïà·´£¬Ö»ÒªÐèÒª£¬Äã¾ÍÓ¦¸Ã³¤ÆÚµØ±£³ÖÊý¾ÝÉÏ
µÄËø¡£Ëø¿ÉÄܲ¢²»Ï¡ÉÙ£¬¶øÇÒËüÃÇ¿ÉÒÔ·ÀÖ¹ÆäËû»á»°ÐÞ¸ÄÐÅÏ¢¡£
ÔÚOracle ÖУ¬Ðм¶ËøÃ»ÓÐÏà¹ØµÄ¿ªÏú£¬¸ù±¾Ã»ÓС£²»ÂÛÄãÊÇÓÐ1 ¸öÐÐËø£¬»¹ÊÇ1 000 000
¸öÐÐËø£¬×¨ÓÃÓÚËø¶¨Õâ¸öÐÅÏ¢µÄ“×ÊÔ´”Êý¶¼ÊÇÒ»ÑùµÄ¡£µ±È»£¬ÓëÐÞ¸Ä1 ÐÐÏà±È£¬ÐÞ¸Ä1 000 000
ÐÐÒª×öµÄ¹¤×÷¿Ï¶¨¶àµÃ¶à£¬µ«ÊǶÔ1 000 000 ÐÐËø¶¨ËùÐèµÄ×ÊÔ´ÊýÓë¶Ô1 ÐÐËø¶¨ËùÐèµÄ×ÊÔ´Êý
ÍêÈ«Ïàͬ£¬ÕâÊÇÒ»¸ö¹Ì¶¨µÄ³£Á¿¡£
²»ÒªÒÔÎªËøÉý¼¶“¶Ôϵͳ¸üºÃ”£¨ÀýÈ磬ʹÓñíËø¶ø²»ÊÇÐÐËø£©¡£ÔÚOracle ÖУ¬ËøÉý¼¶£¨lock
escalate£©¶ÔϵͳûÓÐÈκκô¦£¬²»»á½ÚÊ¡ÈκÎ×ÊÔ´¡£Ò²ÐíÓÐʱ»áʹÓñíËø£¬ÈçÅú´¦ÀíÖУ¬´Ë
ʱÄãºÜÇå³þ»á¸ ......
1£ºÖØÐÂÔÚdbcaÖд´½¨Êý¾Ý¿â²¢Ñ¡ÔñÕýÈ·µÄ×Ö·û¼¯
2£º
²éѯµ±Ç°×Ö·û¼¯£º
select userenv('language') from dual;
select * from V$NLS_PARAMETERS;
ÔÚWindowsÏÂsqlplusÍêÈ«Õý³££¬¿ÉÊǵ½LinuxÏ£¬sqlplusÖÐÎÄÏÔʾ¾Í³öÎÊÌâÁË£¬×ÜÊÇÏÔʾ“??”£¬Õâ¸öÎÊÌâÓÖÔõô½â¾öÄØ£¿
¾¹ýÔÚÍøÂçÉϲé×ÊÁÏ£¬ÒÔ¼°³¢ÊÔ£¬µÃµ½µÄ½â·¨ÈçÏ£º
ÆäʵºÜ¼òµ¥ÎÒÃÇÖ»ÒªÉèÖÃÍ˳ösqlplus,ÉèÖÃÏàÓ¦µÄ»·¾³±äÁ¿NLS_LANG
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
ΪÁËÏ´β»±ØÖØÐÂÉèÖã¬ÎÒÃÇ¿ÉÒÔ½«Æä·ÅÔÚ/home/oracle/.bash_profile»ò/etc/profileÖС£ÖØÐ½øÈësqlplus,µ«ÊÇ·¢ÏÖÔÀ´ÔÚsqlplusÖвåÈëµÄÊý¾ÝÖÐÎÄ»¹ÊÇÏÔʾ"??",²»¹ýÄãÖØÐ²åÈëÒ»Ìõ¿´¿´£¬ÊDz»ÊÇ¿ÉÒÔÕý³£ÏÔʾÖÐÎÄÁË¡£
windows sqlplus¿Í»§¶ËÁ¬½ÓlinuxÏÂOracleÐÞ¸ÄΪ
export NLS_LANG="AMERICAN_AMERICA.UTF8"
3£º
ÐÞ¸Ä×Ö·û¼¯WE8ISO8859³ÉZHS16GBK¾¹ý
[oracle@testdb2 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on ÐÇÆÚÈý 5ÔÂ 20 08:56:15 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Datab ......
ORACLE
CREATE OR REPLACE FUNCTION SETSTATE(OLDVALUE VARCHAR2, POS NUMBER, SVALUE VARCHAR2)
RETURN VARCHAR2
IS
RETURN_VALUE VARCHAR2 (20);
LEN NUMBER(8);
I NUMBER(8);
TEMP_VALUE VARCHAR2(1);
BEGIN
LEN := LENGTH(OLDVALUE);
IF POS > LEN THEN
RETURN 'Ö¸¶¨µÄË÷Òý´óÓÚ×Ö·û´®µÄ³¤¶È£¡';
END IF;
I := 0;
RETURN_VALUE := '';
FOR I IN 1..LEN LOOP
TEMP_VALUE := SUBSTR(OLDVALUE, I, 1);
IF I = POS THEN
TEMP_VALUE := SVALUE;
END IF;
RETURN_VALUE := RETURN_VALUE || TEMP_VALUE;
END LOOP;
& ......
ORACLE
CREATE OR REPLACE FUNCTION SETSTATE(OLDVALUE VARCHAR2, POS NUMBER, SVALUE VARCHAR2)
RETURN VARCHAR2
IS
RETURN_VALUE VARCHAR2 (20);
LEN NUMBER(8);
I NUMBER(8);
TEMP_VALUE VARCHAR2(1);
BEGIN
LEN := LENGTH(OLDVALUE);
IF POS > LEN THEN
RETURN 'Ö¸¶¨µÄË÷Òý´óÓÚ×Ö·û´®µÄ³¤¶È£¡';
END IF;
I := 0;
RETURN_VALUE := '';
FOR I IN 1..LEN LOOP
TEMP_VALUE := SUBSTR(OLDVALUE, I, 1);
IF I = POS THEN
TEMP_VALUE := SVALUE;
END IF;
RETURN_VALUE := RETURN_VALUE || TEMP_VALUE;
END LOOP;
& ......
×î½üÔÚÏîÄ¿±¨±íÖÐÐèÒªÒ»¸ö²éѯÓï¾ä£¬ÓÃÀ´Í³¼Æ·ûºÏijһÁÐÌõ¼þµÄÆäËü¼¸ÁеĸöÊý
±ÈÈçÓÐÏÂÃæÒ»¸ö±í½á¹¹£º
ÐèÒªÔÚÁÐDºóÃæÔö¼ÓÒ»ÁУ¬Í³¼ÆÔÚÁÐA²»Îª¿Õ£¬²¢ÇÒÁÐB¡¢C¡¢D²»Îª¿ÕµÄ¸öÊý
¾¹ý×Ô¼ºÊÔÑ飬²éÕÒ°ïÖú£¬×ÜËãʵÏÖÁËÉÏÃæµÄ²éѯ¡£
Ê×ÏȽ²¼¸¸öº¯ÊýµÄÓ÷¨£º
NULL£ºÖ¸µÄÊÇ¿ÕÖµ£¬»òÕß·Ç·¨Öµ¡£
NVL (expr1, expr2)
²ÎÊý˵Ã÷£ºÈç¹ûexpr1ΪNULL£¬·µ»Øexpr2£»²»ÎªNULL£¬·µ»Øexpr1¡£×¢ÒâÁ½ÕßµÄÀàÐÍÒªÒ»ÖÂ
NVL2 (expr1, expr2, expr3)
²ÎÊý˵Ã÷£ºÈç¹ûexpr1²»ÎªNULL£¬·µ»Øexpr2£»ÎªNULL£¬·µ»Øexpr3¡£expr2ºÍexpr3ÀàÐͲ»Í¬µÄ»°£¬expr3»áת»»Îªexpr2µÄÀàÐÍ
NULLIF (expr1, expr2)
²ÎÊý˵Ã÷£ºÈç¹ûÏàµÈ·µ»ØNULL£¬²»µÈ·µ»Øexpr1
ÏÂÃæÊDZ¾ÈËͨ¹ýÁ½ÖÖ·½·¨ÊµÏֵĽá¹û
·½·¨Ò»£º
´úÂë
1 Select a,
2 ......