SUMSEN

Oracle&Sql爱好者,用友NC管理员

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2012年5月30日

摘要: ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。POSIX 正则表达式由标准的元字符(metacharacters)所构成:'^' 匹配输入字符串的开始位置,在方括号表达式中使 阅读全文
posted @ 2012-05-30 10:03 sumsen 阅读(559) 评论(0) 推荐(0)

摘要: 参数编码:FTS0119参数名称:是否对外付款委托付款书默认为网上支付进入集团0设置,非最顶级 阅读全文
posted @ 2012-05-30 10:02 sumsen 阅读(342) 评论(0) 推荐(0)

摘要: http://database.51cto.com/art/201004/192369.htm本文主要是介绍Oracle 数据类型中的相关数据类型的特点的介绍,以及在Oracle 数据类型中如何使用dump函数才可以查看每一行中的内部存数结构。AD:以下的文章主要是通过实例,来分析Oralce数据类型。我们以Oracle 10G作为为基础,本文以介绍Oralce10g引入的新的数据类型。来引出让Oracle数据类型的相关实际操作,揭示Oracle 数据类型的相关类型的特点。字符类型1.1 char定长字符串,会用空格来填充来达到其最大长度,最长2000个字节。1. 新建一个测试表test_ch 阅读全文
posted @ 2012-05-30 09:59 sumsen 阅读(1655) 评论(0) 推荐(0)

摘要: http://zonghl8006.blog.163.com/blog/static/4528311520083995931317/ over(Partition by...) 一个超级牛皮的ORACLE特有函数。天天都用ORACLE,用了快2年了。最近才接触到这个功能强大而灵活的函数。真实惭愧啊!oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面通过几个例子来说明其应用。1:统计某商店的营业额。 date sale 1 20 阅读全文
posted @ 2012-05-30 09:57 sumsen 阅读(60249) 评论(1) 推荐(6)

摘要: 以.doc的Word文档为例找到如下位置HKEY_CLASSES_ROOT\.doc本人的注册表在默认里能看到Word.Document.8上面这段字符串找到下面的对应路径HKEY_CLASSES_ROOT\Word.Document.8\shell\Open\command其中默认键值为"D:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE" /n /dde这里就是打开Word文档的关联程序路径。修改这个路径即修改了Word的打开方式,因此同理类推。我的sql打开方式:下面是默认的打开方式: 阅读全文
posted @ 2012-05-30 09:53 sumsen 阅读(18404) 评论(0) 推荐(0)

摘要: http://zhidao.baidu.com/question/296112002.html?an=0&si=1打个比喻吧 比如A表的数据是 A{ 1,4,5,9} B{2,3,4,5}那我执行此语句 select * from A union select * from B 那结果是{1,2,3,4,5,9}如果执行select * from A union all select * from B 结果是{1,2,3,4,4,5,5,9}你看下结果就知道他们的区别了这样应该比较容易明白 看不懂再问我 阅读全文
posted @ 2012-05-30 09:49 sumsen 阅读(453) 评论(0) 推荐(0)

摘要: 今天才发现了wmsys.wm_concat这个有趣有用的函数,它的作用是以','链接字符。例子如下:SQL> create table idtable (id number,name varchar2(30));Table createdSQL> insert into idtable values(10,'ab');1 row insertedSQL> insert into idtable values(10,'bc');1 row insertedSQL> insert into idtable values(10, 阅读全文
posted @ 2012-05-30 09:48 sumsen 阅读(844) 评论(0) 推荐(0)

摘要: 我的NC502 手工设计的查询引擎只要做了合计就不支持排序,并且可恨的是还不支持sql里面的order by。刚刚终于搞定了。我首先在格式设计里面把分组设好,但是不对分组小计(否则很丑)。然后我把合计选上,这样自动就会把我的分组排序并且有了合计。完美 阅读全文
posted @ 2012-05-30 09:47 sumsen 阅读(546) 评论(0) 推荐(0)

摘要: fromuser就是把当前的dmp文件中的某一个用户下的数据取出。touser就是把现在dmp文件中的数据导入到目标库的指定用户下。具体命令这样。exp userid=system/manager owner=username1 file=expfile.dmp imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp full=y 阅读全文
posted @ 2012-05-30 09:40 sumsen 阅读(308) 评论(0) 推荐(0)

摘要: 1.nul函数将一个null值转换为一个实际的值。数据类型可以是日期,数字,字符。数据类型必须匹配: nvl(commision,0) nvl(hiredate,'01-JAN-87') nvl(job_id,'no manager') nvl(to_char(job_id),'no manager')nvl能够转换任何数据类型,但是转换的数据类型返回值必须是nvl(expr1,expr2)第一个参数expr的类型。如:date,number, varchar2 or char例子:计算员工的年薪,奖金为空的用0代替。SQL> select 阅读全文
posted @ 2012-05-30 09:39 sumsen 阅读(15397) 评论(0) 推荐(0)

摘要: lowerselect lower(user_name) from user将 user表里的user_name字段信息中含有字母的全部转成大写的方法:update user set user_name=Upper(user_name)同理得到将 user表里的user_name字段信息中含有字母的全部转成小写的方法:update user set user_name=lower(user_name) 阅读全文
posted @ 2012-05-30 09:22 sumsen 阅读(5753) 评论(1) 推荐(0)

摘要: 区别:1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。ps:一个汉字两个字节,比如定义“电工材料类供应商名录”,需要char(20)2.CHAR的效率比VARCHAR2的效率稍高。3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发 阅读全文
posted @ 2012-05-30 09:20 sumsen 阅读(16292) 评论(0) 推荐(0)

摘要: create or replace trigger addCust before insert on bd_cubasdoc for each rowdeclare -- local variables here pk_bas char(20); corp char(4); /*查询目标公司目录*/ cursor bdcorp is select pk_corp from ncv5.bd_corp /*目标数据库表*/ where nvl(dr, 0) = 0 and pk_corp <> '0001'; /*查询目标公司是否存在基本档案*/... 阅读全文
posted @ 2012-05-30 09:19 sumsen 阅读(459) 评论(0) 推荐(0)

摘要: select arap_djfb.paydate as 付款日期, bd_corp.unitname as 付款单位, bd_cubasdoc.custcode as 收款单位编码, bd_cubasdoc.custname as 收款单位名称, bd_accbank.bankacc as 收款银行账号, arap_djfb.bbye as 付款金额, arap_djfb.fkyhmc as 付款银行, arap_djfb.zy as 付款摘要 from ... 阅读全文
posted @ 2012-05-30 09:17 sumsen 阅读(455) 评论(0) 推荐(0)

摘要: 直接修改客商的银行账号。这时候32459408010125337在bd_custbank被删除,新增一个32459408010125337 2同时在银行账户表bd_accbank变成两个但是新增的账号32459408010125337 2 没有单位名称从PL/SQL Developer查询看到2012.8.2更新同步bd_bankacc和bd_custbank的写法create or replace trigger C_ACCBANK_SPACEbefore insert or update on bd_accbank for each rowdeclare -- local vari... 阅读全文
posted @ 2012-05-30 09:15 sumsen 阅读(2962) 评论(0) 推荐(0)

摘要: 转载:http://greatwqs.iteye.com/blog/1061510授权语句--select * from dba_users; 查询数据库中的所有用户--alter user TEST_SELECT account lock; 锁住用户--alter user TEST_SELECT account unlock; 给用户解锁--create user xujin identified by xujin; 建立用户--grant create tablespace to xujin; 授权--grant select on tabel1 to xujin; 授权查询--gran 阅读全文
posted @ 2012-05-30 09:12 sumsen 阅读(3873) 评论(0) 推荐(0)

摘要: 发现用system登陆时,如果以普通身份,那么就必须输入正确密码;如果用管理员身份(直接在对话框“用户名”中填写system/密码 as sysdba),其中的密码就可以随便乱填了。如果没有理解错的话,这是因为登陆(win2000)系统时,是以OS 数据库管理员(对计算机上的特定数据库例程具有 SYSDBA 权限的 Windows NT 用户)的身份登陆造成的。如果直接在“运行”中操作,在我的配置中(win2000,oracle9011)是用:sqlplus "sys/密码 as sysdba"即可,好像加了sid反而不行,但可以加入数据库名:sqlplus "s 阅读全文
posted @ 2012-05-30 09:11 sumsen 阅读(1418) 评论(0) 推荐(0)

摘要: 1,把触发器说透 http://www.cnblogs.com/huyong/archive/2011/04/27/2030466.html2,把过程和函数说透 http://www.cnblogs.com/huyong/archive/2012/04/04/2031541.html3,把游标说透 http://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html4,关键字用法 case if 等http://www.cnblogs.com/huyong/archive/2011/05/13/2045407.html本篇主要内容如下:8. 阅读全文
posted @ 2012-05-30 09:10 sumsen 阅读(349) 评论(0) 推荐(0)

摘要: 1 select custcode, custname from bd_cubasdoc where custname in (select custname from bd_cubasdoc group by custname having count(*)>=2) 2 select custname from bd_cubasdoc group by custname having count(*)>=23 select custcode,custname from bd_cubasdoc group by custcode,custname having count(*)&g 阅读全文
posted @ 2012-05-30 09:07 sumsen 阅读(311) 评论(0) 推荐(0)

摘要: 报错为:该辅助核算从存货核算系统传递数据是出错,提示信息如下: 会计平台数据出错:{0}获取总账辅助核算ID有误! 获得凭证子表中的辅助核算Id..FreevalueBean::findByPrimaryKey(FreevaluePK) Exception!CPROJECTID为项目标示需要从项目管理档案取值getcolvalue(bd_jobmngfil,pk_jobmngfil,remcode,getcolvalue(bd_calbody,bodycode,pk_calbody,@库存组织0@))最完美的解决方案:getcolvalue(bd_jobmngfil,pk_jobmngfil, 阅读全文
posted @ 2012-05-30 09:06 sumsen 阅读(775) 评论(0) 推荐(0)

摘要: 转发http://hi.baidu.com/laurel_2010/blog/item/5a99de3235adae92a8018e5d.html上周五发现同步过来的两张表内容有差异。本不属于自己职责范围之内,但还是未避免对大家日后工作带来不必要麻烦性,主动要求同步了下这两张表内容。本以为很简单的问题,却发现这NULL值到底有多令人讨厌。总体需求是:有两张表t1和t2【假设关注字段为id,name完全相同,我们可暂分析为两表格式完全一致】,其中t2的内容是由t1拷贝而来,我们要保证t2内容完全与t1一致。我们现只解决t1,t2中name不一致情况,缺省内容另外完成。假设创建表为:create 阅读全文
posted @ 2012-05-30 09:05 sumsen 阅读(280) 评论(0) 推荐(0)

摘要: 建议一:利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。:1,批处理文件backup.bat\.exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.d... 阅读全文
posted @ 2012-05-30 09:04 sumsen 阅读(1826) 评论(0) 推荐(0)

摘要: oracle存储过程、声明变量、for循环1、创建存储过程create or replace procedure test(var_name_1 in type,var_name_2 out type) as--声明变量(变量名 变量类型)begin--存储过程的执行体end test;打印出输入的时间信息E.g:create or replace procedure test(workDate in Date) isbegindbms_output.putline(&apos;The input date is:&apos;||to_date(workDate,&ap 阅读全文
posted @ 2012-05-30 09:01 sumsen 阅读(100363) 评论(3) 推荐(1)

摘要: runcate gl_vouchermaxno;--删除最大号表数据(不写回滚段)truncate gl_vouchernosuppl;--删除补号表数据(不写回滚段)delete from gl_vouchermaxno;--删除最大号表数据delete from gl_vouchernosuppl;--删除补号表数据--注:如果确定要删除数据的话,删除大量数据用truncate速度很快,但有个缺点是不写回滚段,不能回滚,慎重选择。用delete的方式删除数据,写回滚段,大量数据删除的时候速度很慢。/*以下语句根据凭证表数据重新插入凭证最大号*/insert into gl_voucherm 阅读全文
posted @ 2012-05-30 09:00 sumsen 阅读(717) 评论(0) 推荐(0)

摘要: http://www.asplearn.net/Wangluobiancheng/Oracle/80015.html由于迁移的表有几千万数据,但是有中文的记录集很少,能否找出有中文内容的记录数。首先采用检测每个字节ASCII的方式,这样的话需要写一个自定义函数,然后SQL中调用得到结果。但是感觉这个方法估计很耗时,毕竟每个字符都要比较,所以没有去实现。Oracle有一个编码转换的函数叫Convert,如果一个字符串编码转换前后不一样就表示字符串里面含有非ASCII字符,这样就得到结果。最后写出来测试了一下,确实可行,5500万记录10秒钟就扫描结束。以下是测试用例:SQL>select* 阅读全文
posted @ 2012-05-30 08:59 sumsen 阅读(670) 评论(0) 推荐(0)

摘要: oracle 10g 中对比字符串相似度的函数发表于2011 年 06 月 23 日由Afshen最近需要处理一批往来单位的信息,把重复(单位名称相似,且实际上是相同的单位的)的单位进行合并。偶然发现oracle10g中已经有函数可以得到不同字符串的相似度。UTL_MATCH.EDIT_DISTANCE_SIMILARIT函数的更多信息,可以参考oracle官方文档:http://docs.oracle.com/cd/E14072_01/appdev.112/e10577/u_match.htm#CHDGDIDJ 阅读全文
posted @ 2012-05-30 08:58 sumsen 阅读(11987) 评论(0) 推荐(1)

摘要: Public Sub replace()For i = 1 To 10 For j = 1 To 8 If Sheet1.Cells(i, 1) <> "" And Sheet2.Cells(j, 2) <> "" And Sheet1.Cells(i, 1).Value = Sheet2.Cells(j, 2).Value Then 'MsgBox (Cells(J, 2).Value) Sheet1.Cells(j, 3) = Sheet2.Cells(j, 2) End If Next jNext iEnd Sub持 阅读全文
posted @ 2012-05-30 08:57 sumsen 阅读(303) 评论(0) 推荐(0)

摘要: Sub b()For i = 1 To 120 Step 1 '从第1行至第9行,如果行数较多,将9改为行数For t = 1 To 120 Step 1If Cells(i, 1) = Cells(t, 3) _ThenCells(i, 1).Font.Color = RGB(255, 0, 0): Cells(t, 3).Font.Color = RGB(255, 0, 0)'必须有空格 换行符(注释的标点需是英文标点,并且不能在换行符一行,并且不能在上面换行符后)Next tNext iEnd Sub2011.12.12更新(整合)Sub b()For i = 1 To 阅读全文
posted @ 2012-05-30 08:54 sumsen 阅读(473) 评论(0) 推荐(0)

摘要: Sub adde()For i = 1 To 6 Step 1If Cells(i, 1).Value < 100 Then _Cells(i, 1) = Cells(i, 1) & "yes"Next iEnd Sub 阅读全文
posted @ 2012-05-30 08:53 sumsen 阅读(236) 评论(0) 推荐(0)

摘要: 已上首页】今天中午看到有魅友说优酷屏蔽魅族了。。我教你们屏蔽广告吧中午上班的时候看到的,一看到就火大,这么恶心人了?原帖链接:http://bbs.meizu.com/viewthread. ... p;extra=&page=1既然你要屏蔽就屏蔽吧,我教大家如何屏蔽优酷15秒片头广告,也希望大家能复制成文档多多发布到所在群,让这个世界没有广告。。。如果你已经弄过Adblock Plus,请直接按照第一条操作。如果没有,请参照第二条,然后在按照第一条步骤。-----------------------------------------------------------第一:XP用户 阅读全文
posted @ 2012-05-30 08:51 sumsen 阅读(456) 评论(0) 推荐(0)

摘要: 1、procedureCREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name[parameter_lister]{AS|IS}declaration_sectionBEGINexecutable_section[EXCEPTIONexception_section]END [procedure_name]--举例create or replaceprocedure dos_fxiscursor c1 isselect get from dos_gj;begin for c2 in c1 loop insert into dos_gj_1(i 阅读全文
posted @ 2012-05-30 08:50 sumsen 阅读(283) 评论(0) 推荐(0)

摘要: 发表于2011 年 12 月 14 日由惜分飞链接:http://www.xifenfei.com/2143.html标题:修改clob字段并插入新表作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]最近开发有个需求,需要替换一张表的clob字段中的某些字符串,然后插入的一张新表中,我查询了一些资料,利用function结合匿名块模拟实现0、数据库版本SQL> select * from v$version; BANNER------------------------------------------------------------- 阅读全文
posted @ 2012-05-30 08:47 sumsen 阅读(984) 评论(0) 推荐(0)