写了一个造数据的存储过程
我想用批处理 调用存储过程
BAT内容:
sqlplus NEXCOSMS/NEXCOSMS@NEXCOSMS @SQL\SP_H_MESSAGE\H_MESSAGE.sqlsql语句内容
spool H_MESSAGE.log
DEFINE insertDateCount = &插入件数
DEFINE V_SLEEPNUM = &暂停时件数
DEFINE SLEEPTIME = &暂停时间
/*因为我插入的数据量会很大 所以提供了暂停功能*/
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') AS 更新前時間 FROM DUAL;
SELECT TO_CHAR(COUNT(1)) AS 更新前数据条数 FROM H_MESSAGE1;
DECLARE
STR_MSG VARCHAR2(256);
BEGIN
STR_MSG := '';
-- 存储过程 第一个参数 是插入件数,第二个暂停时件数 第三个暂停时间 第四个 异常错误信息【返回】
DATASEIZOU.H_MESSAGE_INSERT(&&insertDateCount ,&&V_SLEEPNUM,&&SLEEPTIME,STR_MSG);
/*就在这里 我怎么能把返回的STR_MSG值 写在log里面啊,也就是说怎么把begin。。end 中变量的值传到外面的变量里面*/
COMMIT;
END;/
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') AS 更新後時間 FROM DUAL;
SELECT TO_CHAR(COUNT(1)) AS 更新後数据件数 FROM H_MESSAGE1;
spool off
exit;
我想用批处理 调用存储过程
BAT内容:
sqlplus NEXCOSMS/NEXCOSMS@NEXCOSMS @SQL\SP_H_MESSAGE\H_MESSAGE.sqlsql语句内容
spool H_MESSAGE.log
DEFINE insertDateCount = &插入件数
DEFINE V_SLEEPNUM = &暂停时件数
DEFINE SLEEPTIME = &暂停时间
/*因为我插入的数据量会很大 所以提供了暂停功能*/
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') AS 更新前時間 FROM DUAL;
SELECT TO_CHAR(COUNT(1)) AS 更新前数据条数 FROM H_MESSAGE1;
DECLARE
STR_MSG VARCHAR2(256);
BEGIN
STR_MSG := '';
-- 存储过程 第一个参数 是插入件数,第二个暂停时件数 第三个暂停时间 第四个 异常错误信息【返回】
DATASEIZOU.H_MESSAGE_INSERT(&&insertDateCount ,&&V_SLEEPNUM,&&SLEEPTIME,STR_MSG);
/*就在这里 我怎么能把返回的STR_MSG值 写在log里面啊,也就是说怎么把begin。。end 中变量的值传到外面的变量里面*/
COMMIT;
END;/
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') AS 更新後時間 FROM DUAL;
SELECT TO_CHAR(COUNT(1)) AS 更新後数据件数 FROM H_MESSAGE1;
spool off
exit;
SQL> variable v_s varchar2(1000);
SQL> begin
2 :vs := 123;
3 end;
4 /以上就是在plsql里赋值了然后在sqlplus可以
SQL> print :v_s;
或者
SQL> select :v_s from dual;来显示。
H_MESSAGE.log
DEFINE insertDateCount = &插入件数
DEFINE V_SLEEPNUM = &暂停时件数
DEFINE SLEEPTIME = &暂停时间
/*因为我插入的数据量会很大 所以提供了暂停功能*/
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') AS 更新前時間 FROM DUAL;
SELECT TO_CHAR(COUNT(1)) AS 更新前数据条数 FROM H_MESSAGE1;
BEGIN
STR_MSG := '';
-- 存储过程 第一个参数 是插入件数,第二个暂停时件数 第三个暂停时间 第四个 异常错误信息【返回】
DATASEIZOU.H_MESSAGE_INSERT(&&insertDateCount ,&&V_SLEEPNUM,&&SLEEPTIME, :STR_MSG);
/*就在这里 我怎么能把返回的STR_MSG值 写在log里面啊,也就是说怎么把begin。。end 中变量的值传到外面的变量里面*/
COMMIT;
END; print STR_MSG;