DesignCoding Studio

一切只要去努力!

定制颜色:
[ 显示模式: 摘要 | 列表 ]
分页:1/1
1
2010-03-12

Oracle 中重新编译无效的存储过程, 或函数、触发器等对象

时间: 2010-3-12 15:05:03 作者: admin 阅读次数: 164
Oracle 中的存储过程在有些情况下会变成失效状态,在 PL/SQL Developer 中该存储过程的图标左上角显示一把小红叉叉。比如储过程所引用的对象失效,dblink 出问题啦都可能引起用到它的存储过程失效。再就我的存储过程经常会变成无效,至今原因都未查明。
查询 dba_dependencies 视图可以看到存储过程所引用的对象,再就在 dba_objects 视图中可以看到对象的 created 和 last_ddl_time 时间。
上面的那种无效的存储程,只要不是语法上有问题,重新编译一下又是可用的了。总不能每次发现时人工去编译的,所以要实现自动化,有以下两种方法(网上找到的所有的 在Oracle中重新编译所有无效的存储过程 代码排版都很混乱,所以主要是重新整理了):

[阅读全文]
2009-03-06

MS SQL SERVER 的一些和日期相关的技巧

时间: 2009-3-6 12:06:12 作者: admin 阅读次数: 346
1.一个月第一天的
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
2.本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
3.一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
4.季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
5.当天的半夜
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
6.上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
7.去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
8.本月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
9.本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
10.本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

[阅读全文]
2008-04-22

Oracle 使用游标

时间: 2008-4-22 11:29:47 作者: admin 阅读次数: 671
    procedure execWork is
      tmpworkId
number;
      tmpstepId
number;
      tmpforDay
number;
      startDate date;
      useDay
number;
      
Cursor workCursor is Select workid,nextstepid from flowwork;
    
begin
      
      
open workCursor;  
      loop  
        
fetch workCursor into tmpworkId,tmpstepId;  
          
exit when workCursor%NOTFOUND;
          
select forday into tmpforDay from flowstep where steporderno = tmpstepId;
          
select workstartdate into startDate from flowworkstep where workid = tmpworkId and stepid = tmpstepId and state = 0 and workenddate is null;
           useDay :
= sysdate - startDate;
          
if useDay > tmpforDay then
              
update flowwork set workstate = 5;
          
end if;
      
end loop;
      
close workCursor;
    
end execWork;

[阅读全文]
2008-04-21

Oracle 返回记录集

时间: 2008-4-21 9:43:59 作者: admin 阅读次数: 630

1,创建一个包

create or replace package flow_getWorkList is

  
-- Author  : ADMINISTRATOR
  -- Created : 2008-4-17 16:26:15
  -- Purpose :
  
  
-- Public type declarations
  type myCursor is ref Cursor;
  
  
-- Public constant declarations
  --<ConstantName> constant <Datatype> := <Value>;

  
-- Public variable declarations
  --<VariableName> <Datatype>;

  
-- Public function and procedure declarations
  procedure getWorkList(sType number,LoginPersonID in number,LoginDepartmentID in number,reCursor out myCursor);

end flow_getWorkList;

[阅读全文]
2007-11-06

存储过程分隔字符串 msp_GetSplit

时间: 2007-11-6 17:08:30 作者: admin 阅读次数: 562

msp_GetSplit 一个用分割字符串的存储过程.很实用啊!


[阅读全文]
2007-11-06

存储过程制作查询条件 msp_GetWhere

时间: 2007-11-6 13:09:03 作者: admin 阅读次数: 652

msp_GetWhere 这是用来做查询条件的.


[阅读全文]
2007-11-06

存储过程解密 mf_PWDDecrypt

时间: 2007-11-6 13:08:01 作者: admin 阅读次数: 566

存储过程中的加密和解密 mf_PWDDecrypt 

----------------------------------------------------------------------------------------
--
Function Name: mf_PWDDecrypt
--
Author: Alain Tessier
--
Date: May 31th 2002
--
Description: Decrypt
--
--------------------------------------------------------------------------------------
CREATE FUNCTION mf_PWDDecrypt
(
@strCoded varchar(1000) )
RETURNS varchar(1000)
AS
BEGIN
DECLARE @strPWD varchar(30)
DECLARE @ctr int
SET @Ctr = 1
SET @strPWD = ''
WHILE @Ctr <= LEN( @strCoded )
BEGIN
SET @strPWD = @strPWD + char(
(
CONVERT ( int , dbo.mf_26ToDec ( SUBSTRING ( @strCoded , @Ctr , 3 ) ) ) - 5000 )
/ CASE WHEN (@CTR+2)/3 % 2 = 0 THEN ( 1 * (@CTR+2)/3 ) ELSE ( -1 * (@CTR+2)/3 ) END
)
SET @Ctr = @Ctr + 3
END
RETURN @strPWD


END

[阅读全文]
2007-09-07

存储过程加密 mf_PWDEncrypt

时间: 2007-9-7 8:07:37 作者: admin 阅读次数: 619

存储过程中的加密和解密 mf_PWDEncrypt 

----------------------------------------------------------------------------------------
--
Function Name: mf_PWDEncrypt
--
Author: Alain Tessier
--
Date: May 31th 2002
--
Description: Decrypt
--
--------------------------------------------------------------------------------------
CREATE FUNCTION mf_PWDEncrypt
(
@strPWD varchar(30) )
RETURNS varchar(1000)
AS
BEGIN
DECLARE @strCoded varchar(1000)
DECLARE @ctr int
SET @Ctr = 1
SET @strCoded = ''
set @strPWD = LOWER ( @strPWD )
WHILE @Ctr <= LEN( @strPWD )
BEGIN
SET @strCoded = @strCoded + dbo.mf_DecTo26 ( CONVERT ( varchar(4) , 5000 +
CASE WHEN @CTR % 2 = 0 THEN ( 1 * @ctr ) ELSE ( -1 * @ctr ) END
* ASCII ( SUBSTRING ( @strPWD , @Ctr , 1 ) )
) )
SET @Ctr = @Ctr + 1
END
RETURN @strCoded

END

[阅读全文]
2007-07-06

Oracle数据导入导出imp/exp

时间: 2007-7-6 20:15:42 作者: admin 阅读次数: 745

Oracle数据导入导出imp/exp
­
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
­
Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接
(通过net8 assistant中本地-->服务命名 添加正确的服务命名
其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)
这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
­
执行环境:可以在SQLPLU*.**E或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLU*.**E、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLU*.**E调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。


[阅读全文]
分页:1/1
1