我用的是PB9.0 连接了ORACLE 10G 数据库 并同时也连接了SQL SERVER2005数据库,
我根据条件判断 ORACLE数据库里 是否存在某条数据 我写的下面语句 取出来的行数量为0 可是 ORACLE数据库里确实有这条数据 不知道是不是我这语句写的有问题
请高手帮我看下  谢谢
语句如下:
select count(*) into :ll_row from diagnosis where patient_id = is_zyh and visit_id = ii_zycs and diagnosis_type = 1 using ORA_MEDREC;
结果确是 LL_ROW 为0  diagnosis 这个表里确实存在这条数据!
我在PL*SQL里查询的时候  
select * from diagnosis where patient_id = '123' and visit_id = '1' and diagnosis_type = 1  
就能查询出来此条数据。

解决方案 »

  1.   

    where patient_id = is_zyh and visit_id = ii_zycs and diagnosis_type = 1
    中is_zyh ,ii_zycs 是什麼?
    等於where patient_id = '123' and visit_id = '1' and diagnosis_type = 1  
    中的'123','1'嗎?
      

  2.   

    对  is_zyh 是我声明的变量 是从窗口传过来的  
    where pgtient_id = is_zyh and visit_id = ii_zycs and diagnosis_type = 1
    where patient_id = '123'  and visit_id = '1'     and diagnosis_type = 1
    两个语句完全一样!我不知道PB连接ORACLE 如何判读ORACLE里数据的行数量
    我以前用SQL 的时候都是
    写 select count(*) into :ll_row from diagnosis 
    ll_row 是声明的变量!
      

  3.   

    你这个语句你运行的时候就没有报错?SELECT 
            COUNT ( * ) 
    INTO 
            :LL_ROW 
    FROM 
            DIAGNOSIS 
    WHERE 
            PATIENT_ID = :IS_ZYH 
            AND VISIT_ID = :II_ZYCS 
            AND DIAGNOSIS_TYPE = 1 USING ORA_MEDREC ; 要加分号
      

  4.   

    打错了,是冒号·SELECT 
            COUNT ( * ) 
    INTO 
            :LL_ROW 
    FROM 
            DIAGNOSIS 
    WHERE 
            PATIENT_ID = :IS_ZYH 
            AND VISIT_ID = :II_ZYCS 
            AND DIAGNOSIS_TYPE = 1 USING ORA_MEDREC ; 
      

  5.   

    哈哈   还真没写冒号!
    我加上冒号了! 提示能判断出ORACLE里有此条数据
    可是还是没能 在PB窗口上显示出来!
    郁闷中~~~
      

  6.   

    请问 li_willian114 我是新手用 pb11.5连接oracle10g时出现 “fail to get local NLS_LANG charset ID”问题,请问怎么解决,谢谢!我的profile如下:
    // Profile MTB
    SQLCA.DBMS = "O10 Oracle10g (10.1.0)"
    SQLCA.LogPass = <********>
    SQLCA.ServerName = "16.158.83.113@MTB"
    SQLCA.LogId = "sysman"
    SQLCA.AutoCommit = False
    SQLCA.DBParm = "ConnectAs='SYSDBA',DisableBind=1,NLS_Charset='Local'"