表结构如下
机构代码 变更更正机构 变更更正内容 变更更正类型 变更更正时间
340200010100 芜湖市公安局镜湖派出所 NULL 0 2006-5-24
340200010100 芜湖市公安局镜湖派出所 NULL 0 2006-5-25
340200010100 芜湖市公安局镜湖派出所 NULL 1 2006-5-26
340200010100 芜湖市公安局镜湖派出所 NULL 1 2006-5-27
340200010100 芜湖市公安局镜湖派出所 NULL 2 2006-5-28
340200010100 芜湖市公安局镜湖派出所 NULL 2 2006-5-29
340200010200 芜湖市公安北门派出所 NULL 0 2006-5-30
340200010200 芜湖市公安北门派出所 NULL 0 2006-5-31
340200010200 芜湖市公安北门派出所 NULL 1 2006-6-01
340200010200 芜湖市公安北门派出所 NULL 1 2006-6-02
340200010200 芜湖市公安北门派出所 NULL 2 2006-6-03
340200010200 芜湖市公安北门派出所 NULL 2 2006-6-04(注:变更更正类型字段说明 0:添加 1:更新 2:删除)当不加时间限制时得到如下结果
变更更正机构 添加 更新 删除
芜湖市公安局镜湖派出所 2 2 2
芜湖市公安北门派出所 2 2 2
加入时间限制时得到如下结果(如 变更更正时间>=2006-5-30)
变更更正机构 添加 更新 删除
芜湖市公安北门派出所 2 2 2
机构代码 变更更正机构 变更更正内容 变更更正类型 变更更正时间
340200010100 芜湖市公安局镜湖派出所 NULL 0 2006-5-24
340200010100 芜湖市公安局镜湖派出所 NULL 0 2006-5-25
340200010100 芜湖市公安局镜湖派出所 NULL 1 2006-5-26
340200010100 芜湖市公安局镜湖派出所 NULL 1 2006-5-27
340200010100 芜湖市公安局镜湖派出所 NULL 2 2006-5-28
340200010100 芜湖市公安局镜湖派出所 NULL 2 2006-5-29
340200010200 芜湖市公安北门派出所 NULL 0 2006-5-30
340200010200 芜湖市公安北门派出所 NULL 0 2006-5-31
340200010200 芜湖市公安北门派出所 NULL 1 2006-6-01
340200010200 芜湖市公安北门派出所 NULL 1 2006-6-02
340200010200 芜湖市公安北门派出所 NULL 2 2006-6-03
340200010200 芜湖市公安北门派出所 NULL 2 2006-6-04(注:变更更正类型字段说明 0:添加 1:更新 2:删除)当不加时间限制时得到如下结果
变更更正机构 添加 更新 删除
芜湖市公安局镜湖派出所 2 2 2
芜湖市公安北门派出所 2 2 2
加入时间限制时得到如下结果(如 变更更正时间>=2006-5-30)
变更更正机构 添加 更新 删除
芜湖市公安北门派出所 2 2 2
解决方案 »
- dataguard SWITCHOVER_STATUS
- 请教各位大虾,在c#访问客户端的数据库视图时会提示客户数据库未开始一个事务处理,怎么处理呢,急急急!
- 如何使用递归方法截取ORACLE 字符串?
- oracle 10g 连接错误
- oracle备份脚本的问题 急!急!急!急!急!急!急!急!急!
- 求一个插入语句~~~~~~~~~~~~~~~~~~谢谢~~~
- 怎么办呀?请教:oracle中的生僻字"腘"经jsp读取后就成乱码了!
- 一个菜鸟问题:怎么浏览自己做的portal?
- 请问nvl这样用可以吗?
- oracle dataguard搭建的问题,斑竹请指点
- 关于存储过程中异常处理的问题
- 帮忙看看这个存储过程:)
count(decode(变更更正类型,1,1)) "更新",
count(decode(变更更正类型,2,1)) "删除"
from tablename
group by 变更更正机构有时间限制则加上where 条件:
where 变更更正时间>= to_date('2006-5-30','yyyy-mm-dd')
但是爲什麽一定要寫成試圖那?寫成視圖比較難
因爲關鍵就是這個時間的處理。
這個時間不能被包含到視圖的where條件裏。
而是要在在select試圖時下時間條件,是這個意思不?
PACKAGE ROOMINFO_PACKATGE IS
type c_Type is ref cursor; PROCEDURE countrecord
(input_date IN varchar2,
mycursor OUT c_Type);
END;//包体
PACKAGE BODY ROOMINFO_PACKATGE IS
PROCEDURE countrecord
(input_date IN varchar2,
mycursor OUT c_Type)
IS
BEGIN
open mycursor for
select 变更更正机构,
count(decode(变更更正类型,0,1)) "添加",
count(decode(变更更正类型,1,1)) "更新",
count(decode(变更更正类型,2,1)) "删除"
from roominfo_histroy a
where 变更更正时间>= to_date(input_date,'yyyy-mm-dd')
group by 变更更正机构;
END;END;在VB代码中写如下代码
dim dbconn As ADODB.Connection
dim rs As ADODB.Recordset
dim dbcmd As ADODB.Command
dim dbpara As ADODB.Parameter
dim constr as stringSet dbconn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set dbcmd = New ADODB.Command
Set dbpara = New ADODB.Parameter
constr = "Provider=OraOLEDB.Oracle;Persist Security Info=True;User ID=gps;Password=gps;Data Source=test_easymap"
dbconn.CursorLocation = 1
dbconn.ConnectionString = constr
dbconn.Open
dbcmd.CommandType = 1
Set dbcmd.ActiveConnection = dbconn
dbcmd.CommandText = "{call ROOMINFO_PACKATGE.countrecord(?)}"
Set dbpara = dbcmd.CreateParameter("input_date", adVarChar, adParamInput, 10)
dbpara.Value = "2006-05-30"
dbcmd.Parameters.Append dbpara
rs.CursorType = adOpenStatic
rs.LockType = adLockReadOnly
Set rs.Source = dbcmd
rs.OpenIf rs.RecordCount > 0 Then
Set MSHFlexGrid1.Recordset = rs
End If可是在运行时出错,提示“PLS-00306:调用'COUNTRECORD'时参数个数或类型错误”的错误信息,此时程序停止在rs.open这一行小弟上网查过资料好像是说ADO不能调用带返回记录集的存储过程,真是如此吗?真是好事多磨,有劳大家了.