- 论坛徽章:
- 0
|
本帖最后由 hydakesu 于 2011-07-20 13:26 编辑
谢谢各位的帮助,asdf2110的方法我没有怎么看懂,不过问题已经解决啦。
共有给那些不用超级用户但是和可以使用COPY命令的兄弟。
一下是我的代码:
psql -U ${DB_USER} ${INSTANCE_NAME} > ${SQL_PATH} <<__INPUT__
BEGIN TRANSACTION;
CREATE LOCAL TEMPORARY TABLE KAUT_TEMP_USER_INFO (SEQUENCE Serial,RECORD_TYPE VARCHAR(7),DATA_TYPE VARCHAR(4),PERSONNEL_COMP_ID VARCHAR(2),ISSUE_TIME TIMESTAMP,
RECORD_COUNT VARCHAR(10), COMP_ID VARCHAR(10), EMPLOYEE_NO VARCHAR(7),USER_ID VARCHAR(9),EN_NM1 VARCHAR(60),EN_NM2 VARCHAR(60), EN_NM3 VARCHAR(60),LOCAL_NM1 VARCHAR(60),
LOCAL_NM2 VARCHAR(60),LOCAL_NM3 VARCHAR(60),NM_SORT VARCHAR(60), MAIL_ADDR VARCHAR(80), EXTEN_TEL VARCHAR(1, EXTEN_FAX VARCHAR(1,OUTSIDE_TEL VARCHAR(1,
OUTSIDE_FAX VARCHAR(1, MAILBOX_NO VARCHAR(10), SUSPENSION_TYPE VARCHAR(1),RETIRE_TYPE VARCHAR(1),RETIRE_DATE TIMESTAMP) ON COMMIT DROP;
\COPY KAUT_TEMP_USER_INFO (RECORD_TYPE,DATA_TYPE,PERSONNEL_COMP_ID,ISSUE_TIME,RECORD_COUNT,COMP_ID,EMPLOYEE_NO,USER_ID,EN_NM1,EN_NM2,EN_NM3,LOCAL_NM1,LOCAL_NM2,LOCAL_NM3,NM_SORT,MAIL_ADDR,EXTEN_TEL,EXTEN_FAX,OUTSIDE_TEL,OUTSIDE_FAX,MAILBOX_NO,SUSPENSION_TYPE,RETIRE_TYPE,RETIRE_DATE) from '/home/webuiuser/data/recv/temp_user_info_5.tsv' null '';
select ifms0041(${PERSONNEL_DATA_ID},${DATA_CATEGORY},${COPY},${NEXT_TP_NO},${INPUT_RUN_TYPE});
COMMIT TRANSACTION;
__INPUT__
在同一个事物中,实现啦临时表的建立,导入数据,以及启动sp进行处理。
以上代码为sh代码。 |
|