现场是这样的,我有一个表是用来记录所有信息值,另外一个表是用来记录所有的配置信息。也就是说记录了那些字段使有效的,含义是什么。
我现在想根据配置表中的设置,得出对应的数据表中的值,如何写呢?简单的原型如下:
配置表:
create table t_test_config(
    CONFIGTYPE VARCHAR2(10) NOT NULL,--配置的类型
    FIELDNAME VARCHAR2(30) NOT NULL,--字段名称
    FIELDDESC VARCHAR2(60) NOT NULL    --字段描述
);
数据表:
create table T_TEST_DATA
(
  DATAID        VARCHAR2(12) not null,
  CONFIGTYPE    VARCHAR2(10) not null,
  SFIELD1       VARCHAR2(100),
  SFIELD2       VARCHAR2(100),
  SFIELD3       VARCHAR2(100),
  SFIELD4       VARCHAR2(100),
  SFIELD5       VARCHAR2(100),
  SFIELD6       VARCHAR2(100),
  DFIELD1       DATE,
  DFIELD2       DATE,
  DFIELD3       DATE,
  IDFIELD1      NUMBER(8,2),
  IDFIELD2      NUMBER(8,2),
  IDFIELD3      NUMBER(10,2),
  REMARK        VARCHAR2(200)
);现在比如在Config表中,定义了如下数据:
CONFIGTYPE FIELDNAME  FIELDDESC
---------- ---------- ---------
CFG1       SFIELD1    列车编号
CFG1       DFIELD1    发车时间
CFG1       IDFIELD1   票价数据表:
DATAID CONFIGTYPE SFIELD1  DFIELD1     IDFIELD2 REMARK
----------------- -------- -------------------- ------
1      CFG1       T92      2006-09-23    100.00       我想在一个存储过程中获得一个CFG1对应的所有记录串起来的字符串:列车编号:T92;发车时间:2006-09-23;票价:100.00JAVA有反射机制可以很轻松的实现这个功能,但是Oracle的存储过程该如何实现呢???请各位高人多多指教。

解决方案 »

  1.   

    不太懂楼主的要求,是不是这样?我理解就是这样:
    http://community.csdn.net/Expert/topic/5037/5037398.xml?temp=.108288
    对吗?
      

  2.   

    不是这样的,我的意思是,读取的记录的字段数量和名字都不确定。我现在可以一个字段一个字段的读取,除非Oracle£系统表存放表的值,或者,可能通过列名来获得记录的值。你们明白我在说什么吗 ?
      

  3.   

    问题解决了,execute into using
      

  4.   

    用动态语句。
    Excecute immediate t_vSQL into t_v1,t_v2 using t_v3;