在对 Oracle 数据库进行查询时,我在格式化数据时遇到问题。
我想要做的是将一些数据以下面的格式导出到文本文件中;
1IN20071001 40005601054910101200 1 65
- 第一个数字(上面的 1)= 公司编号(位置 1-5,前面的空白)
- IN 或 UT = IN 用于时钟输入,UT 用于时钟输出(位置 6-7)
- 20071001 = 日期(营业日期),格式为 YYYYMMDD(位置 8-15)
- 400056010549 = EmployeeID(位置 16-33,右对齐,前面有空格)
- 101012 = TTMMSS 格式的时间(位置 34-39)
- 00 = FT,始终为 00(位置 40-41)
- 空白 = 总是 8 个空格(位置 42-49)
- 1 = 不确定它的用途,但它应该始终为 1(位置 50,右对齐,前面有空格)
- 65 = “Kostnadsställe”,ENT_HR_EMPLOYEE.USERALPHA6(位置 51-55,右对齐,前面有空白)
目前我正在使用下面的查询,但这是我的 SQL 知识结束的地方......
COLUMN one FORMAT a5 HEADER JUSTIFY RIGHT
COLUMN two FORMAT a8 HEADER two
COLUMN three FORMAT a18 HEADER three JUSTIFY RIGHT
COLUMN four FORMAT a5 HEADER three JUSTIFY RIGHT
SELECT h.fkod AS one, 'IN',
SUBSTR(t.clockindatetime,0,4) ||
SUBSTR(t.clockindatetime,6,2) ||
SUBSTR(t.clockindatetime,9,2) AS two,
i.employeeid AS three
SUBSTR(t.clockindatetime,11,6) || '00 1',
h.fkod AS four
FROM ent_time_card_detail t,
max_employeeid_history i,
ent_hr_employee h
WHERE h.enthremployeeid = t.enthremployeeid
AND h.payrollid = i.userid
AND t.clockindatetime >= i.from_date
AND (t.clockindatetime < i.to_date OR i.to_date IS NULL);
有任何 SQL-pro 可以帮助我完成格式化吗?