在没有绑定之前,如何获取需要绑定的信息,如绑定名称,绑定类型等?
也就是想要在绑定之前,获取有哪些需要绑定的变量,类型都是什么。

解决方案 »

  1.   

    你是说用oci绑定批量入库吗。
    你必须先知道需绑定的变量和类型呀
      

  2.   

    不是的,我的意思就是不知道要执行的SQL有哪些需要绑定的变量的情况下去绑定。需要绑定的值已经提供了,只不过都是同一个类型,比如都是字符串型的,在绑定的时候需要根据绑定变量的类型把字符串型的值转换成相应类型的值,再进行绑定。
      

  3.   

    举个实际例子吧。看上去自相矛盾。不知道哪个字段,但是有值,是不是这个意思?OCI不提供查看表结构的接口吗?java有MetaData,OCI应该也有吧
      

  4.   

    OCI不提供查看表结构的接口吗?java有MetaData,OCI应该也有吧 
     
      

  5.   

    用oci绑定批量入库。 
    你得必须先知道需绑定的变量和类型,我也这样认为
      

  6.   

    谢谢大家的关注。
    我的意思是,做一个通用的查询方法,参数有要执行sql,以及该sql所需要的参数数据,参数数据放到一个hash里,key为参数名称,值为参数值,并且是以字符串形式存放的。这样,在执行sql时需要先获取这个sql中有是否需要绑定参数,如果有的话,参数的名称和类型都是什么。这样就可以通过参数名称到hash中获取该参数的值了,并且根据参数类型把获取的字符串转换成相应的类型值。
    比如:sql为:select a from tab where b = :para1 b为number类型
          hash中的键值对为:para1------> val1
                            para2------> val2
                            para3------> val3      这样就可以先根据para1这个参数名称到hash中获取相应的值val1,然后把val1转换成double或float之后在绑定到sql上。我现在想知道的就是在oci中是否有办法可以在只知道sql的情况下获取该sql需要绑定的参数名称和类型。
      

  7.   

    复杂的sql可能涉及多个表,那么参数对应的字段属于哪个表怎么进行判断???所以通过查询表结构的方法获取参数类型不太好,并且参数名称也不一定和字段名称一致。
      

  8.   

    自己找到了,使用函数OCIStmtGetBindInfo可以获取
      

  9.   

    同样的问题
    想问问  OCIStmtGetBindInfo   怎么使用的阿
    可否把你的部分程序贴上来  参考一下呢?
    万分谢谢