ORACLE语句,将字符串和变量拼起来的内容当字段名和表名
pabsme_vw_table这个表里面是(序号serial_number、表英文名en_t_name、中文名ch_t_name这三个字段)我想查pabsme_vw_ta...
pabsme_vw_table这个表里面是 ( 序号serial_number、表英文名en_t_name、中文名ch_t_name这三个字段)
我想查pabsme_vw_table这个表里面的(表英文名en_t_name)这些表名在数据库中的最小时间。
然后把查询出的最小时间,表名插入pabsme_t_mindate 表。
但是pabsme_vw_table这个表里面的(表英文名en_t_name)在数据库中的表明称要加上'sme.qq'的前缀。各位大神,求解~~谢谢!!!(不能用存储程序~~可以用delcare )
我写了一个 但是不对啊,谁能帮我重新写一个
delcare
t_number NUMBER:=1
while t_number<=77 loop
insert into pabsme_t_mindate
select min(data_date),'sme.qq'||(select en_t_name from pabsme_vw_table where serial_number=t_number)
from 'sme.qq'||(select en_t_name from pabsme_vw_table where serial_number=t_number)
commit;
t_number:=t_number+1;
end loop;
END; 展开
我想查pabsme_vw_table这个表里面的(表英文名en_t_name)这些表名在数据库中的最小时间。
然后把查询出的最小时间,表名插入pabsme_t_mindate 表。
但是pabsme_vw_table这个表里面的(表英文名en_t_name)在数据库中的表明称要加上'sme.qq'的前缀。各位大神,求解~~谢谢!!!(不能用存储程序~~可以用delcare )
我写了一个 但是不对啊,谁能帮我重新写一个
delcare
t_number NUMBER:=1
while t_number<=77 loop
insert into pabsme_t_mindate
select min(data_date),'sme.qq'||(select en_t_name from pabsme_vw_table where serial_number=t_number)
from 'sme.qq'||(select en_t_name from pabsme_vw_table where serial_number=t_number)
commit;
t_number:=t_number+1;
end loop;
END; 展开
2个回答
展开全部
我没看懂你写的脚本。
第一:pabsme_t_mindate 表里面有几个字段?如果就两个字段,那还好,如搭燃果有2个以上字段,写的语句不对:insert into pabsme_t_mindate
select min(data_date),'sme.qq'||(select en_t_name from pabsme_vw_table where serial_number=t_number);
第二:在select语句中,第二个查询字姿碧段不需要用子查询迹枝举语句吧?
第一:pabsme_t_mindate 表里面有几个字段?如果就两个字段,那还好,如搭燃果有2个以上字段,写的语句不对:insert into pabsme_t_mindate
select min(data_date),'sme.qq'||(select en_t_name from pabsme_vw_table where serial_number=t_number);
第二:在select语句中,第二个查询字姿碧段不需要用子查询迹枝举语句吧?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用动态语句实现,你试试:
DECLARE
T_NUMBER NUMBER := 1;
V_SQL VARCHAR2(1000);
BEGIN
WHILE T_NUMBER <= 77 LOOP
SELECT 'insert into PABSME_T_MINDATE (TABLE_DATE, TABLE_NAME) SELECT MIN(data_date),''sme.qq' ||
EN_T_NAME || 毁敬''' FROM sme.qq' || EN_T_NAME
INTO V_SQL
FROM PABSME_VW_TABLE
尘余迹派并 WHERE SERIAL_NUMBER = T_NUMBER;
DBMS_OUTPUT.PUT_LINE(V_SQL);
EXECUTE IMMEDIATE (V_SQL);
T_NUMBER := T_NUMBER + 1;
V_SQL := '';
END LOOP;
END;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询