单位使用Oracle数据库,要编写一个VB的小程序,判断在库中是否存在一个与输入的字符串名称相同的表名?如果存在该表再输入一个字符串与表中的列名进行匹配判断?
  怎样才能用SQL语句实现上述功能呢?希望各位高手不吝赐教!!!

解决方案 »

  1.   

    主要是查询user_tab_columns表中的table_name,column_name就可以了,举例如下:
    查表名:
    select table_name 
    from user_tab_columns 
    where table_name=upper('your_tablename'); 
    -- 如果表名有大小写的话,改为where table_name="your_tablename"查列名:
    select column_name
    from user_tab_columns
    where column_name=upper('your_columnname');
    -- 如果列名有大小写的话,改为where column_name="your_columnname"
      

  2.   

    那个我比较初级,还想请问一下是否table_name,user_tab_columns都是关键字?那为什么查列名时不用确定他在那个表中呢?
       不好意思,麻烦大家了!
      

  3.   

    不好意思,是我漏写了。
    你蛮细心的。
    更正一下!
    查列名:
    select column_name
    from user_tab_columns
    where table_name=upper('your_tablename') 
    and column_name=upper('your_columnname');
    -- 如果表名有大小写的话,加双引号,改为 table_name="your_tablename"
    -- 如果列名有大小写的话,加双引号,改为 column_name="your_columnname"
      

  4.   

    user_tab_columns是系统表
    你可以select * from user_tab_columns就知道里面的内容了
      

  5.   

    最好用all_tab_columns表,这个表里的是所有你可以访问的表,而user_tab_columns表里的是本用户的表
      

  6.   

    SELECT * FROM dictory WHERE table_name = UPPER(your_tab_name);