要查询数据库中某表的某列,要查询的表和列都是从前台选择,请问PL/SQL怎么写啊.

解决方案 »

  1.   

    你可以在前台就把需要执行的sql语句拼接好,再提交给后台执行
      

  2.   

    你前台总是要提交一条sql语句给后台execute的吧,execute "select "||field_name|| " from "||table_name;
    这里是存储过程里面的写法,java提交给后台执行的命令好象不是execute,而且连接符号也不时"||",好象是用"+"连接的
      

  3.   

    我以前写的是前台调用数据库中查询的结果 ,而不是提交一条PL/SQL语句给后台execute
    我的前台是JAVA,但是在数据库中怎么写啊
    例如:
    我的前台这样写:
                    BaseServletAgent bsa1 = new BaseServletAgent(codeBase);
    try{
    Vector arg = new Vector();
    arg.add(tablename);
    BaseVO bvo = new BaseVO(USERNAME,this.getClass().toString(),CommandName.CallPLSQLCmd,arg);
    bvo.setPackageName("mrp1_Tool_ReportGenerator010");
    bvo.setFunctionName("ColumnName_Query");
    ResultVO rvo = bsa1.doFunc(bvo);
    Vector result = rvo.getData();
    jcombo_ColumnName.removeAllItems();
    jcombo_ColumnName.addItem("");
    for(int i=1;i<result.size();i++){
    Vector row = (Vector)result.elementAt(i);
    jcombo_ColumnName.addItem(row.get(0).toString());

    }

    }catch(Exception e){e.printStackTrace();}PL/SQL这样写:
    function ColumnName_Query(V_tablename in varchar2)return report_row_type is result report_row_type;
    begin
    open result for
    select  COLUMN_NAME
    from   USER_TAB_COLUMNS
    where  TABLE_NAME = V_tablename;
    return result;
    end;
      

  4.   

    PL/SQL这样写:
    function ColumnName_Query(V_tablename in varchar2)return report_row_type is result report_row_type;
    begin
    sql:='select ' || field_name || ' from ' ||table_name;
    open result for sql;
    return result;
    end; 
      

  5.   

    问题是这样:UI 上有两个ComboBox  一个用来给用户 选择表   另一个 用来给用户 选择列(可选对个列)
    然后  有一个 查询 BUTTON  用户点下这个BUTTON  就把从数据库中查 选择的表的列中的值PL/SQL 怎么写呢, 因为事先是不知道要查询的是哪个表的哪些列