Oracle Êý¾ÝÀàÐÍ·ÖÏí
¸øÍŶÓÄÚ²¿×öµÄÒ»¸öOracle Êý¾ÝÀàÐÍ·ÖÏí£¬Ö÷ÒªÊǹØÓÚOracleÊý¾ÝÀàÐÍһЩÄÚ²¿´æ´¢½á¹¹¼°ÐÔÄܽéÉÜ¡£
http://www.slideshare.net/yzsind/oracle-4317768
ÒÔÏÂÊÇPPTÖÐunDumpNumberº¯ÊýµÄÈ«²¿´úÂ룺
create or replace function unDumpNumber(iDumpStr varchar2) return number is
TYPE ByteArray IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
Bytes ByteArray;
Result number;
i integer;
pos1 integer;
pos2 integer;
pos3 integer;
vlength integer;
begin
result := 0;
pos1 := instr(iDumpStr, 'Len=') + 4;
pos2 := instr(iDumpStr, ':');
vlength := substr(iDumpStr, pos1, pos2 - pos1);--get length
i := 0;
pos2 := pos2 + 1;
--½«dumpµÄ×Ö·û´®Ìî³äµ½Êý×éÖÐ
for i in 0..vlength-1
loop
pos3 := instr(iDumpStr, ',', pos2);
if pos3>0 then
Bytes(i) := trim(substr(iDumpStr, pos2, pos3 - pos2 ));
else
Bytes(i) := trim(substr(iDumpStr, pos2));--×îºó1×Ö½Ú
end if;
pos2 := pos3 + 1;
end loop;
--»¹ÔNUMBER
if Bytes(0) = 128 then --128±íʾ0
result := 0;
elsif Bytes(0) > 128 then --´óÓÚ128±íʾÕýÊý
for i in 1 .. vlength - 1 loop
result := result +
(Bytes(i) - 1) * power(100, (Bytes(0) - 193) - i+1);
end loop;
else --СÓÚ128±íʾ¸ºÊý
for i in 1 .. vlength - 2 loop
result := result +
&nb
Ïà¹ØÎĵµ£º
Oracle ´æ´¢¹ý³Ì·µ»Ø½á¹û¼¯Óà ref cursor ʵÏÖ¡£ÊÔÑé²½ÖèÈçÏ£º
1. ½¨Á¢ ref cursor ÀàÐͺ͹ý³Ì
CREATE OR REPLACE PACKAGE types
AS
TYPE ref_cursor IS REF CURSOR;
END;
/
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7,2 ......
½ñÌìÅöµ½Ò»¸öÎÊÌ⣬ͨ¹ýÒ»¸öSQLÓï¾ä²éѯʱ£¬³öÈçÏÂÎÊÌ⣺
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30
ÎÊÌâ³öÏÖÔÚͨ¹ýWMSYS. ......
ʲôÊǺϲ¢¶àÐÐ×Ö·û´®£¨Á¬½Ó×Ö·û´®£©ÄØ£¬ÀýÈ磺
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
Õâ¶Îʱ¼äΪ¹«Ë¾ÄÚ²¿µÄÊý¾Ý´¦Àí¿ª·¢ÁËÒ»¸ö¹¤¾ß£¬Ç£Éæµ½ÔÚOracleÖм¯³ÉjavaÓ¦Óã¬×ܽáÁËһЩ¾Ñ飬ÒÔ¹©´ó¼Ò²Î¿¼ÁË£¡
³ÌÐò·ÖÁ½²¿·Ö£¬Ç°¶Ë½çÃæÓÉVB/VC¿ª·¢£¬Ö÷ҪʵÏÖÊý¾Ý´¦ÀíÅäÖü°³£¹æ¼Ç¼ÔËË㣬Õⲿ·ÖûÓÐʲôºÃ˵µÄÁË¡£
ºǫ́ÒÔOracleΪÊý¾Ý»ù´¡´¦ÀíÍÐ¹ÜÆ½Ì¨£¬ÔÚÊý¾Ý´¦Àí¹ý³ÌÖУ¬ÐèÒª¶ÔһЩÃû³Æ¡¢µØÖ·Ê²Ã´µÄ½øÐÐÕªÒªÌáÈ¡¡¢² ......
create or replace and compile java source named md5util as
import java.security.MessageDigest;
public class MD5Util
{
public static String encrypt(String s)
{
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', ......