Oracle×Ö·û´®³¤¶ÈµÄÎÊÌâ
½ñÌìÅöµ½Ò»¸öÎÊÌ⣬ͨ¹ýÒ»¸öSQLÓï¾ä²éѯʱ£¬³öÈçÏÂÎÊÌ⣺
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30
ÎÊÌâ³öÏÖÔÚͨ¹ýWMSYS.WM_CONCAT_IMPLº¯ÊýÖØÐÂ×é×°×Ö·û´®µÄʱºò£¬×é×°µÄ´®¹ý³¤£¬varchar2ÀàÐ͵ÄÊý¾ÝÀàÐÍ×î´óΪ4000¸ö×Ö½Ú£¬ÔÚPL/SQLÖÐ×î´óΪ32767£¬ÔÒò¾ÍÔÚÕâWMSYS.WM_CONCAT_IMPL×é×°µÄÕâ¸ö×Ö·û´®³¤¶ÈΪ18031£¬ÔÚschema¼¶ÏÂvarchar2×î´óÊÇ4000£¬³¬¹ý×î´ó³¤¶È£¬±¨´í¡£(¼ÇϸÃÎÊÌ⣬³¤¼ÇÐÔ~)
ÒÔÏÂÄÚÈÝÎª×ªÔØ£¬url£ºhttp://www.blogjava.net/wangbing/archive/2010/03/15/315482.html
¹ØÓÚ varchar2 µÄ×î´ó³¤¶È
varchar2ÓÐÁ½¸ö×î´ó³¤¶È£ºÒ»¸öÊÇÔÚ×Ö¶ÎÀàÐÍ4000£»Ò»¸öÊÇÔÚPL/SQLÖбäÁ¿ÀàÐÍ32767¡£½ñÌì·¸ÁËÒ»¸öС´íÎ󣬾ÍÊǺ¯ÊýµÄvarchar2ÀàÐ͵ķµ»ØÖµ³¤¶ÈÒ²ÊÇ4000£¬¶ø²»ÊÇÎÒÒÔΪµÄ32767¡£
ÏëÁËһϣ¬ÕâÊÇÒ»¸ö±È½ÏÈÝÒ׳ö´íµÄµØ·½¡£ÒòΪÔÚº¯ÊýÖÐÎÒ¿ÉÒÔÉùÃ÷³¤¶È³¬¹ý4000µÄ×Ö·û´®±äÁ¿£¬²¢ÇÒ½«Ëü×÷Ϊ·µ»ØÖµ£¬ÕâÀïÊDz»»áÌáʾ±àÒë´íÎóµÄ¡£Õâ¸öº¯Êýƽʱ¶¼¿ÉÒÔÕý³£Ö´ÐУ¬¶øÒ»µ©Õâ¸ö×Ö·û´®³¤¶È³¬¹ý4000£¬º¯ÊýÖ´Ðоͻá³ö´í¡£ËùÒÔÕâ¸öÎÊÌâËäÈ»±È½Ï¼òµ¥£¬ÈÔÈ»¼Ç¼һÏ¡£
C:\Documents and Settings\yuechao.tianyc>sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on ÐÇÆÚ¶þ 5ÔÂ 5 17:15:59 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ÇëÊäÈëÓû§Ãû: test/test
Á¬½Óµ½:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create or replace function funny return varchar2
2 is
3 v_yct varchar2(32767);
4 begin
5 v_yct := rpad('a', 4001, 'b');
6 &
Ïà¹ØÎĵµ£º
1)ÔÚdelphiÖÐ,¾³£ÓÐÈËдSQL²¢´«Èëµ½Êý¾Ý¿âÖÐÖ´ÐÐ,Ò»°ã¶¼ÊǰÑsqlÆ´³öÀ´,ÈçÏÂ:
sSql := 'select * from ContainerStateH where container like '+QuotedStr('%'+trim(Edit2.Text)+'%') +' order by BeginDay';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sSql);
ADOQuery1.Open;
µ«ÊÇ´ÓoracleÊý¾Ý¿â½Ç¶È¿¼Â ......
Âß¼ÉÏ£º
Single column µ¥ÐÐË÷Òý
Concatenated ¶àÐÐË÷Òý
Unique ΨһË÷Òý
NonUnique ·ÇΨһË÷Òý
Function-basedº¯ÊýË÷Òý
Domain ÓòË÷Òý
ÎïÀíÉÏ£º
Partitioned ·ÖÇøË÷Òý
NonPartitioned ·Ç·ÖÇøË÷Òý
B-tree£º
Normal Õý³£ÐÍBÊ÷
Rever Key ·´×ªÐÍBÊ÷
Bitmap λͼË÷Òý
Ë÷Òý½á¹¹£º
B-tree£º
ÊʺÏÓë´óÁ¿µÄÔö¡ ......
ÀàÐÍÃû³Æ
Oracle
SQLServer
±È½Ï
×Ö·ûÊý¾ÝÀàÐÍ
CHAR
CHAR
¶¼Êǹ̶¨³¤¶È×Ö·û×ÊÁϵ«oracleÀïÃæ×î´ó¶ÈΪ2kb£¬SQLServerÀïÃæ×î´ó³¤¶ÈΪ8kb
±ä³¤×Ö·ûÊý¾ÝÀàÐÍ
VARCHAR2
VARCHAR
OracleÀïÃæ×î´ó³¤¶ÈΪ4kb£¬SQLServerÀïÃæ×î´ó³¤¶ÈΪ8kb
¸ù¾Ý×Ö·û¼¯¶ø¶¨µÄ¹Ì¶¨³¤¶È×Ö·û´®
NCHAR
NCHAR
ǰÕß×î´ó³¤¶È2kbºóÕß×î´ó³¤¶È4 ......
ΪÕâЩÓû§ÃûÉèÖÃ×㹻ǿ׳µÄ¿ÚÁî»òËø¶¨ÎÞÓõÄĬÈÏÓû§¡£
SQLÓï¾äÐ޸ģº
Á¬½ÓÖÁOracleºóʹÓÃÈçÏÂÃüÁîÐ޸ĿÚÁî:
alter user system£¨Óû§Ãû£© identified by manager£¨ÃÜÂ룩;
Á¬½ÓÖÁOracleºóʹÓÃÈçÏÂÃüÁîËø¶¨Õ˺Å:
alter user test£¨Óû§Ãû£© account lock;
ͼÐδ°¿ÚÐ޸ģº
Oracle·þÎñopenviewÉϵÄÓû§£ºSCOT ......
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 ......