当前位置:  技术问答>java相关

请教一条Sql语句!! 在线等候!!

    来源: 互联网  发布时间:2015-04-28

    本文导语:  怎么得到一个table的所有column的名称??在线等候!!! | ResultSet rs = stmt.executeQuery("SELECT * FROM TABLE1");      ResultSetMetaData rsmd = rs.getMetaData();  for(int i=0;i table catalog (may be null)   ...

怎么得到一个table的所有column的名称??在线等候!!!

|
ResultSet rs = stmt.executeQuery("SELECT * FROM TABLE1");
     ResultSetMetaData rsmd = rs.getMetaData();
 for(int i=0;i table catalog (may be null)
   *
  • TABLE_SCHEM String => table schema (may be null)
       *
  • TABLE_NAME String => table name
       *
  • COLUMN_NAME String => column name
       *
  • DATA_TYPE short => SQL type from java.sql.Types
       *
  • TYPE_NAME String => Data source dependent type name
       *
  • COLUMN_SIZE int => column size.  For char or date
       *     types this is the maximum number of characters, for numeric or
       *     decimal types this is precision.
       *
  • BUFFER_LENGTH is not used.
       *
  • DECIMAL_DIGITS int => the number of fractional digits
       *
  • NUM_PREC_RADIX int => Radix (typically either 10 or 2)
       *
  • NULLABLE int => is NULL allowed?
       *      

         *      
    •  columnNoNulls - might not allow NULL values
         *      
    •  columnNullable - definitely allows NULL values
         *      
    •  columnNullableUnknown - nullability unknown
         *      

       *
  • REMARKS String => comment describing column (may be null)
       * 
  • COLUMN_DEF String => default value (may be null)
       *
  • SQL_DATA_TYPE int => unused
       *
  • SQL_DATETIME_SUB int => unused
       *
  • CHAR_OCTET_LENGTH int => for char types the 
       *       maximum number of bytes in the column
       *
  • ORDINAL_POSITION int => index of column in table 
       *      (starting at 1)
       *
  • IS_NULLABLE String => "NO" means column definitely 
       *      does not allow NULL values; "YES" means the column might 
       *      allow NULL values.  An empty string means nobody knows.
       *  
       *
       * @param catalog a catalog name; "" retrieves those without a
       * catalog; null means drop catalog name from the selection criteria
       * @param schemaPattern a schema name pattern; "" retrieves those
       * without a schema
       * @param tableNamePattern a table name pattern 
       * @param columnNamePattern a column name pattern 
       * @return ResultSet each row is a column description
       * @see #getSearchStringEscape 
       */
      public synchronized
        ResultSet getColumns(String catalog, String schemaPattern,
     String tableNamePattern, String columnNamePattern)
           
        throws SQLException
      {
        /* Bug 798299:
         * We need to build the query dynamically, based on the values of
         * include_synonyms and report_remarks.  If include_synonyms is true,
         * we need to do an outer join with all_synonyms.  If report_remarks is
         * true, we need to do an outer join with all_col_comments.  Both of these
         * are in addition to the base query against all_tab_columns.
         */
        String queryPart1 =
    "SELECT NULL AS table_cat,n";

        String tableName = 
    "       t.owner AS table_schem,n" +
    "       t.table_name AS table_name,n";

        String synonymName =
    "       DECODE(s.table_owner, NULL, t.owner, s.table_owner)n" +
    "              AS table_schem,n" +
    "       DECODE(s.synonym_name, NULL, t.table_name, s.synonym_name)n" +
    "              AS table_name,n";

        String queryPart2 =
    "       t.column_name AS column_name,n" +
    "       DECODE (t.data_type, 'CHAR', 1, 'VARCHAR2', 12, 'NUMBER', 3,n" +
    "               'LONG', -1, 'DATE', 93, 'RAW', -3, 'LONG RAW', -4, 1111)n" +
    "              AS data_type,n" +
    "       t.data_type AS type_name,n" +
    "       DECODE (t.data_precision, null, t.data_length, t.data_precision)n" +
    "              AS column_size,n" +
    "       0 AS buffer_length,n" +
    "       t.data_scale AS decimal_digits,n" +
    "       10 AS num_prec_radix,n" +
    "       DECODE (t.nullable, 'N', 0, 1) AS nullable,n";

        String remarks = 
    "       c.comments AS remarks,n";

        String noRemarks =
    "       NULL AS remarks,n";

        String queryPart3 =
    "       t.data_default AS column_def,n" +
    "       0 AS sql_data_type,n" +
    "       0 AS sql_datetime_sub,n" +
    "       t.data_length AS char_octet_length,n" +
    "       t.column_id AS ordinal_position,n" +
    "       DECODE (t.nullable, 'N', 'NO', 'YES') AS is_nullablen";

        String fromClause =
    "FROM all_tab_columns t";

        String synonymFrom = ", all_synonyms s";
        String remarksFrom = ", all_col_comments c";

        String whereClause =
    "WHERE t.owner LIKE ? ESCAPE '/'n" +
    "  AND t.table_name LIKE ? ESCAPE '/'n" +
    "  AND t.column_name LIKE ? ESCAPE '/'n";

        String synonymWhereClause =
    "WHERE t.owner LIKE ? ESCAPE '/'n" +
    "  AND (t.table_name LIKE ? ESCAPE '/' ORn" +
    "       s.synonym_name LIKE ? ESCAPE '/')n" +
    "  AND t.column_name LIKE ? ESCAPE '/'n";

        String remarksWhere =
    "  AND t.owner = c.owner (+)n" +
    "  AND t.table_name = c.table_name (+)n" +
    "  AND t.column_name = c.column_name (+)n";

        String synonymWhere =
    "  AND s.table_name (+) = t.table_namen" +
    "  AND DECODE(s.owner, t.owner, 'OK',n" +
    "                      'PUBLIC', 'OK',n" +
    "                      NULL, 'OK',n" +
    "                      'NOT OK') = 'OK'";

        String orderBy =
    "ORDER BY table_schem, table_name, ordinal_positionn";

        String finalQuery;

        // Assemble the final query based on report_remarks and
        // include_synonyms.
        finalQuery = queryPart1;

        if (connection.include_synonyms)
          finalQuery += synonymName;
        else
          finalQuery += tableName;

        finalQuery += queryPart2;

        if (connection.report_remarks)
          finalQuery += remarks;
        else
          finalQuery += noRemarks;

        finalQuery += queryPart3 + fromClause;

        if (connection.report_remarks)
          finalQuery += remarksFrom;
     
        if (connection.include_synonyms)
          finalQuery += synonymFrom;

        if (connection.include_synonyms)
          finalQuery += "n" + synonymWhereClause;
        else
          finalQuery += "n" + whereClause;

        if (connection.report_remarks)
          finalQuery += remarksWhere;

        if (connection.include_synonyms)
          finalQuery += synonymWhere;

        finalQuery += orderBy;

        connection.trace("getColumns final SQL statement is:n" + finalQuery);

        // And finally, prepare, execute, and return the result set.
        PreparedStatement s = connection.prepareStatement (finalQuery);

        if (connection.include_synonyms)
        {
          s.setString (1, schemaPattern == null ? "%" : schemaPattern);
          s.setString (2, tableNamePattern == null ? "%" : tableNamePattern);
          s.setString (3, tableNamePattern == null ? "%" : tableNamePattern);
          s.setString (4, columnNamePattern == null ? "%" : columnNamePattern);
        }
        else
        {
          s.setString (1, schemaPattern == null ? "%" : schemaPattern);
          s.setString (2, tableNamePattern == null ? "%" : tableNamePattern);
          s.setString (3, columnNamePattern == null ? "%" : columnNamePattern);
        }
        OracleResultSetImpl rs = (OracleResultSetImpl)s.executeQuery ();
        rs.close_statement_on_close = true;
        return rs;
      }

  • |
    如果你指的是JDBC的话,可以用如下的代码:
    .........//SQL:select A,B,C from test;
    ResultSetMetaData Rsm=resultset.getMetaData();
    int i;
    for (i=1;i

        
     
     

    您可能感兴趣的文章:

  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • 请教一段shell语句的作用
  • 请教个shell编程语句的问题。
  • 请教一个很简单的语句
  • 请教SHELL语句如何获取程序的安装路径?
  • 请教一个shell语句:文件比较问题|急~~~
  • 关于Oracle中的sql语句的疑问,向大家请教。
  • 请教各位前辈,这条语句是什么意思?
  • 请教:在linux下如何为一个结构体分配空间?语句该怎么写?
  • 请教高人:下面一段代码中的__ret_gu语句做何用途,还有switch语句的default分支:__get_user_x()中的第一个参数“X”好像未声明,如何编
  • 向各位前辈请教一个关于switch语句的问题,谢谢:)
  • 请教一个shell中调用sqlplus,其中sql语句中有$符号,需要转义,不知道怎么写转义才对,比较急,在线等,谢谢!
  • 请教结构体定义--LINUX驱动程序中语句
  • 小问题请教高手:try中的语句为何不执行!!!
  • 请教一条SQL语句。
  • 向高手请教import语句用法!!!
  • 急急急,请教有经验的大侠???--在线等候
  • ftp 命令请教, 在线等候, 高分相送
  • 向大家请教一个问题,关于Javabean的!在线等候!
  • 小弟有问题请教,很急,谢谢,在线等候
  • 请教--做过邮件系统的朋友,如何对qmail进行操作(100分,在线等候)
  • (高分请教,在线等候)关于ejb的问题和如何调试ejb?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • unix/linux知识 iis7站长之家
  • 在线等待!!请教soloaris9 for x86的安装方法
  • 请教内核ppp代码的内容——在线等
  • 请教个小问题,在线等.....望大家帮忙
  • 急,在线等待!!!请教个问题,linux下的远程控制软件是什么,可以在那里取得,多谢?
  • 新手虚心请教.在线等复....vsftp配置成功后,本机可以FTP上,但其他系统通过FTP工具不能上.防火墙不能关..
  • 请教各位高手!!!gcc有问题,怎么办啊?怎样重装它啊???在线等
  • 请教DNS问题?在线等待
  • 请教:如何使对话框弹出是位于最顶层(在线)
  • 请教系统启动过程中的一个问题!在线等待!!
  • 请教构架一个BBS的步骤!在线等!!!!!!!!!!!!!!
  • 请教:jdbNavList如何才能出现滚动条?(在线等待)
  • 在线请教:如果在JSP页面中上载文件到服务器端?
  • 请教简单问题!在线等。。。马上结贴
  • 在线等待!请教Linux中删除用户使用什么命令?
  • 请教:solaris经常自动重启或者死机,请问如何查找问题?在线等。
  • 在线等待: 请教red hat 9下一流的汉化软件
  • 在线等待回音,请教各位同仁如何中断I/O阻塞问题
  • 菜鸟请教linux下编程怎么用--------在线等待
  • 请教:怎么样往用户目录中的“.bashrc”文件末尾添加如下内容??(在线等)
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3