oracle存储过程同步数据执行错误

图片说明
这个是我的存储过程, s_date := to_date(startTime,'yyyy-mm-dd hh24:mi:ss');
我用这样把字符串转成date,但是传进来的字符串是有时分秒的,
转换之后就只剩下年月日了,类似23-12月-17, 第一个if里面是可以正确执行的,后面的elsif 有日期比较的都报错了图片说明
报这个错,求大佬看看

6个回答

s_date := to_date(startTime,'yyyy-mm-dd hh24:mi:ss'); 改为s_date := to_date(startTime,''yyyy-mm-dd hh24:mi:ss''); 2个单引号,时间比较的时候注意两边格式是否一致

qq_34629482
qq_34629482 回复qq_35702591: ok,改成跟你一样的占位符的形式=:1就可以了
一年多之前 回复
qq_35702591
小肥猪。 回复qq_34629482: where t.TJSJ>='||s_date; 就是将你的这个地方,用我刚才那个例子的 方式用:1来替换,然后在用我例子中的using来使用这个变量
一年多之前 回复
qq_35702591
小肥猪。 回复qq_34629482: create or replace procedure down_message_tongbu is V_SQL VARCHAR2(2048); v_id varchar2(43); s_date date; begin s_date:=to_date('2018-02-07 07:13:39','yyyy-MM-dd hh24:mi:ss'); V_SQL:='select id from down_message where create_date= :1'; EXECUTE IMMEDIATE V_SQL INTO v_id using s_date; dbms_output.put_line(v_id); EXCEPTION WHEN OTHERS THEN dbms_output.put_line(sqlerrm); ROLLBACK; COMMIT; end; 自己写了个例子 没有问题能执行成功
一年多之前 回复
qq_34629482
qq_34629482 回复qq_35702591: 可以帮忙写下吗。。不是很理解你的意思
一年多之前 回复
qq_35702591
小肥猪。 回复qq_34629482: 不用变量的那种,你先直接拼在你的sql中试试,我的意思是‘to_date(endTime,''yyyy-mm-dd hh24:mi:ss'')’,:=后面也要加单引号的
一年多之前 回复
qq_34629482
qq_34629482 两个单引号的话e_date := to_date(endTime,''yyyy-mm-dd hh24:mi:ss'');新建存储过程就报错了
一年多之前 回复

s_date varchar2(100);
e_date varchar2(100);

s_date := 'to_date('''||startTime||''',''yyyy-mm-dd hh24:mi:ss'')';

qq_34629482
qq_34629482 谢谢了,试过这个也是可以的
一年多之前 回复

create or replace procedure copy_Data3(tablename in varchar2,startTime in varchar2,endTime in varchar2)
as
dynamic_insert_sql varchar2(500);
s_date VARCHAR2(100);
e_date VARCHAR2(100);
begin
if startTime is null and endTime is null then
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t';
elsif startTime is null and endTime is not null then
e_date := 'to_date('''||endTime||''',''yyyy-mm-dd hh24:mi:ss'')';
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t where t.TJSJ<='||e_date;
elsif startTime is not null and endTime is null then
s_date := 'to_date('''||startTime||''',''yyyy-mm-dd hh24:mi:ss'')';
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t where t.TJSJ>='||s_date;
elsif startTime is not null and endTime is not null then
s_date := 'to_date('''||startTime||''',''yyyy-mm-dd hh24:mi:ss'')';
e_date := 'to_date('''||endTime||''',''yyyy-mm-dd hh24:mi:ss'')';
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t where t.TJSJ>='||s_date||' and t.TJSJ<='||e_date;
end if;
execute immediate dynamic_insert_sql;
COMMIT;
end;

qq_34629482
qq_34629482 谢谢,这个可以的,不过我已经采纳上面的了,不好意思了
一年多之前 回复

to_char(to_date(date, data本身类型),想要的类型)

Mr__Lee1208
Mr__Lee1208 回复qq_34629482: 我以为你要转换成需要的格式类型,再进行比较,你可以写个简单的sql去测试一下啊
一年多之前 回复
Mr__Lee1208
Mr__Lee1208 回复qq_34629482: oracle日期格式如果是字符串的换不需要转换啊,可以直接进行比较的
一年多之前 回复
qq_34629482
qq_34629482 回复Mr__Lee1208: 是字符串啊,varchar2的,直接写varchar2是错的
一年多之前 回复
Mr__Lee1208
Mr__Lee1208 回复qq_34629482: 你把你的startTime的日期格式告诉我,想要转换的格式是什么,我写给你看下
一年多之前 回复
Mr__Lee1208
Mr__Lee1208 回复qq_34629482:你的startTime是什么类型的,格式是'yyyy-mm-dd hh24:mi:ss
一年多之前 回复
qq_34629482
qq_34629482 回复Mr__Lee1208: s_date := to_char(to_date(startTime, 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'); 这样吗,报错的ORA-01861: 文字与格式字符串不匹配 ORA-06512
一年多之前 回复
Mr__Lee1208
Mr__Lee1208 回复qq_34629482: 可以
一年多之前 回复
qq_34629482
qq_34629482 这样转成字符串了,还能比较日期吗
一年多之前 回复

create or replace procedure copy_Data3(tablename in varchar2,startTime in varchar2,endTime in varchar2)
as
dynamic_insert_sql varchar2(500);
s_date date;
e_date date;
begin
if startTime is null and endTime is null then
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t';
elsif startTime is null and endTime is not null then
e_date := to_date(endTime,'yyyy-mm-dd hh24:mi:ss');
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t where t.TJSJ<='||e_date;
elsif startTime is not null and endTime is null then
s_date := to_date(startTime,'yyyy-mm-dd hh24:mi:ss');
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t where t.TJSJ>='||s_date;
elsif startTime is not null and endTime is not null then
s_date := to_date(startTime,'yyyy-mm-dd hh24:mi:ss');
e_date := to_date(endTime,'yyyy-mm-dd hh24:mi:ss');
dynamic_insert_sql := 'insert into '||tablename||' select t.*,sysdate,'||1||' from '||tablename||'@DBLINK_QYPT2 t where t.TJSJ>='||s_date||' and t.TJSJ<='||e_date;
end if;
execute immediate dynamic_insert_sql;
COMMIT;
end;

上面的图片太小,重新贴一下代码

报错是你本身传入的参数就有问题,本身存储过程没有问题。
你检查一下你的传入的参数。
问题出在这里。导致_to_date失败_

qq_40023049
qq_40023049 哦哦,对的,很久没写了。有点忘了。
一年多之前 回复
qq_34629482
qq_34629482 参数是‘2013-12-23 11:00:00’这样的 insert into BQ_TJ01 select t.*,sysdate,1 from bq_tj01@DBLINK_QYPT2 t where t.tjsj >= to_date('2013-12-23 11:00:00','yyyy-mm-dd hh24:mi:ss')直接写sql不放到存储过程是可以执行的
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
oracle存储过程同步数据
--存储过程 create or replace PROCEDURE Sync_INFO_HISTORY IS BEGIN   insert into tb_site_month     select * from TB_SITE where SITE_TIME&amp;lt;TRUNC(SYSDATE,'DD');   delete from TB_SITE where SITE_TIME&amp;l...
ORACLE存储过程执行错误
[code=SQL]rncreate or replacernPROCEDURE DIM_TIME_PROC(rn start_date IN VARCHAR2, rn end_date IN VARCHAR2 rn)rnAS rn--定义变量 rnbegin_time DATE; --开始时间rnend_time DATE; --结束时间rndim_date DATE; --中间变量rn--i NUMBER; --计数器rndate_flag NUMBER; --会计区间值 本例取15 天rn--vs_msg VARCHAR2(4000); --错误信息变量rn--fmon_type VARCHAR2(20); --财务月类型rnBEGINrn--fmon_type = FMONTH_TYPE;rnbegin_time := to_date(start_date,'yyyymmdd');rnend_time := to_date(end_date,'yyyymmdd'); rndate_flag := to_number(end_time - begin_time);rnIF date_flag < 0 THENrnBEGINrndbms_output.put_line('输入有误,结束日期必须大于开始日期,请重新输入');rnEND;rnrnELSE rnBEGINrndim_date := begin_time;rnwhile end_time >= begin_time rnLOOPrnBEGINrnINSERT INTO dim_time(rnDAYKEY )rnVALUES(rnto_char(dim_date,'yyyymmdd')); rndim_date := dim_date + 1;rnEND;rnend loop; rnEND;rnEND IF;rnEND DIM_TIME_PROC;rn[/code]rnrn错误:rn[img=http://home.51cto.com/thumb.php?w=600&h=600&t=f&url=http://home.51cto.com/data/uploads/20120709/16/4ffa933c8cf23.jpg][/img]rnrnORA-06550: 第 1 行, 第 7 列: rnPLS-00103: 出现符号 "PROCEDURE"在需要下列之一时:rn ( beginrn case declare exit for goto if loop mod null pragma raisern return select update while with rn <
执行oracle存储过程时出现的错误
rnrn我在pl/sql中执行oracle存储过程时出现的错误rn ora-01555: 快照过旧:回退段号 14 在名称为"_syssmu14$"过小.rn为什么会出现这样的错误,这是一个什么样的错误rnrn多谢高手指点
oracle存储过程执行
写好了个存储过程,有特殊用途需要拼接成sql语句执行存储过程(即直接在pl/sql的sql window中写语句能运行)。这个语句需要怎么写??比如过程叫Proc1,参数有a,b,c三个参数。rn
Oracle存储过程错误
下方的代码单独执行,结果是正确的为1,但在存储过程中执行后结果就错了值为2,请问大神是什么原因该如何解决rn select count(*)rn into sre_countrn from view_stacking_ctrl_get arn where 1 = 1rn and a.features = featuresrn /*and a.file_id like '%'||file_id||'%'*/rn and a.spec = specrn and a.jzformula = jzformularn /*and a.gpformula like '%'||gpformula||'%'*/rn and a.silu = silurn and a.value_03 = heicodern /* and a.gphei like '%'||gphei||'%'*/rn and cap >= a.capdownrn and cap <= a.capuprn and a.voldown <= volrn and a.volup >= vol;
关于oracle存储过程的执行,错误多多,希望指点
CREATE OR REPLACE PROCEDURE p_ch(v_Move_ID IN VARCHAR2) ISrn v_id integer;rnBEGINrn v_id:=get_s_seq('p_send_bill');rn insert into p_send_bill(s_Ticket_id,s_bill_id,s_bill_no)rn select Ticket_id,v_id,v_idrn from P_TASK_TICKETrn where Move_ID = v_Move_ID;rnrn insert into p_send_dtl(s_Ticket_id,sd_bill_id,sd_goods_id)rn select Ticket_id,v_id,T_GOODS_IDrn from p_ticket_goodsrn where ticket_id in (select ticket_id from P_TASK_TICKET where Move_ID = v_Move_ID);rnrnEND p_ch;rn/rnrn以上是存储过程,现在就是需要给我段在delphi中执行的这个存储过程的代码
解决问题:Oracle存储过程执行成功,但数据没有变化
  Oracle存储过程执行成功,但数据没有化一. 检查执行之后,是否在后面加写一行commit;二. 检查execute语句在where条件后面,操作的字段是否trim(),否则很有可能执行结果不成功;示例:红色下划线的地方特别注意:不管是传入的参数,还是表本身的字段都要加trim();  ...
数据删除操作执行错误
用SQL Server2008建立的数据库rnrn用VS2008建立了一个项目rnrn项目中能实现表中数据的插入操作rnrn但是在执行表中数据删除操作时出现rnrn在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。rnrn未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。rnrn(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)rnrn请问此问题怎么解决啊?
SQL数据执行错误
我用weblogc连接池进行数据更新时出现如下错误:小弟很迷惑,因为同样的语句用pl/sql执行就没有错误,这是怎么会事?rn请好心大侠帮帮忙,谢谢了!rnjava.sql.SQLException: ORA-00900: 无效 SQL 语句rnrn at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)rn at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)rn at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)rn at oracle.jdbc.driver.T4C8Odscrarr.receive(T4C8Odscrarr.java:206)rn at oracle.jdbc.driver.T4CStatement.do_describe(T4CStatement.java:375)rn at oracle.jdbc.driver.OracleStatement.describe(OracleStatement.java:3220)rn at oracle.jdbc.driver.OracleResultSetMetaData.(OracleResultSetMetaData.java:63)rn at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:133)rn at weblogic.jdbc.wrapper.ResultSet.getMetaData(ResultSet.java:185)rn at hbgspagw.DataConnCa.executeQuery(dataconnca.java:87)rn at jsp_servlet._1zhidui.__shunxu_post._jspService(__shunxu_post.java:175)rn at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)rn at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)rn at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)rn at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:526)rn at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)rn at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)rn at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)rn at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)rn at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)rn at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)rn at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)rn at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
求教:oracle存储过程执行不稳定
有一个oracle的存储过程,其中逻辑以及涉及的执行语句比较多,执行时间比较长,并在其中调用了其他的存储过程。rn本身存储过程中没有进行回滚和提交操作。rn在java调用这个存储过程时,通过返回值来判断存储过程是否执行成功,进行相应的回滚或是提交。rnrnjava的事务是一个串行的操作,在这个过程的前后,还有其他过程的操作。rn现在发现在执行成功的情况下,整个事务进行提交时,这个存储过程中涉及的部分sql语句和存储过程,没有执行。rn而且这个部分执行的情况不是每次都出现。rn在pl/sql中执行这个存储过程,再提交时,所有涉及的sql语句,调用的存储过程都执行了。rnrnrn是什么原因?
执行oracle存储过程的问题
执行oracle存储过程,出现问题ora-01403和ora-06512,如何解决?
C#执行Oracle存储过程报错
参数数量没错,类型没错rn错误是:rnORA-06550: line 1, column 7:rnrnPLS-00306: wrong number or types of arguments in call to 'SP_ADDORDERS'rnrnORA-06550: line 1, column 7:rnrn存储过程是:rncreate or replace PROCEDURE SP_ADDORDERS ----新建委托单rn (rn P_ORDERNUM IN NVARCHAR2,rn P_EXPERINAME IN NVARCHAR2,rn P_CONTRACTNUM IN NVARCHAR2,rn P_BATCHNUM IN NVARCHAR2,rn P_BALENUM IN NVARCHAR2,rn P_SPECIMENNAME IN NVARCHAR2,rn P_PARTNUM IN NVARCHAR2,rn P_SAMPLEAMOUNT IN NUMBER,rn P_FACILITYNAME IN NVARCHAR2,rn P_FACILITYMODELNUM IN NVARCHAR2,rn P_FACILITYCODE IN NVARCHAR2,rn P_FACILITYINDATE IN NVARCHAR2,rn P_TESTTYPE IN NVARCHAR2,rn P_TESTINGPROJECT IN NVARCHAR2,rn P_TESTBASIS IN NVARCHAR2,rn P_ENTRUSTREQUIRE IN NVARCHAR2,rn P_ENTRUSTUNITS IN NVARCHAR2,rn P_ENTRUSTADDRESS IN NVARCHAR2,rn P_ENTRUSCONTACTINFO IN NVARCHAR2,rn P_DEPARTMENT IN NVARCHAR2,rn P_ISRESERVEDSAMPLE IN NVARCHAR2,rn P_RESERVEDDATE IN DATE,rn P_ORDERSTATUS IN NVARCHAR2,rn P_REMARK IN NVARCHAR2,rn P_ExperimentType IN NUMBER,rn P_TestEngineer in NVARCHAR2,rn P_CREATETIME IN DATE,rn P_RECEIVEDATE IN DATE,rn retValue OUT NUMBER --返回值 0:增加失败 1:插入成功 2.单号已存在rn rn )rnISrn colNUM NUMBER;rnBEGINrn SELECT COUNT (*)rn INTO colNUMrn FROM T_BUSINESS_ORDERSrn WHERE ORDERNUM = P_ORDERNUM;rnrn IF colNUM = 0rn THENrn INSERT INTO T_BUSINESS_ORDERS (ID,rn ORDERNUM,rn EXPERINAME,rn CONTRACTNUM,rn BATCHNUM,rn BALENUM,rn SPECIMENNAME,rn PARTNUM,rn SAMPLEAMOUNT,rn FACILITYNAME,rn FACILITYMODELNUM,rn FACILITYCODE,rn FACILITYINDATE,rn TESTTYPE,rn TESTINGPROJECT,rn TESTBASIS,rn ENTRUSTREQUIRE,rn ENTRUSTUNITS,rn ENTRUSTADDRESS,rn ENTRUSCONTACTINFO,rn DEPARTMENT,rn ISRESERVEDSAMPLE,rn RESERVEDDATE,rn ORDERSTATUS,rn REMARK,rn EXPERIMENTTYPE,rn TESTENGINEER,rn CREATETIME,rn RECEIVEDATE)rn VALUES (SEQ_BUSINESS_ORDERSID.NEXTVAL,rn P_ORDERNUM,rn P_EXPERINAME,rn P_CONTRACTNUM,rn P_BATCHNUM,rn P_BALENUM,rn P_SPECIMENNAME,rn P_PARTNUM,rn P_SAMPLEAMOUNT,rn P_FACILITYNAME,rn P_FACILITYMODELNUM,rn P_FACILITYCODE,rn P_FACILITYINDATE,rn P_TESTTYPE,rn P_TESTINGPROJECT,rn P_TESTBASIS,rn P_ENTRUSTREQUIRE,rn P_ENTRUSTUNITS,rn P_ENTRUSTADDRESS,rn P_ENTRUSCONTACTINFO,rn P_DEPARTMENT,rn P_ISRESERVEDSAMPLE,rn P_RESERVEDDATE,rn P_ORDERSTATUS,rn P_REMARK,rn P_ExperimentType,rn P_TestEngineer,rn P_CREATETIME,rn P_RECEIVEDATE);rnrn IF (SQL%ROWCOUNT) > 0rn THENrn retValue := 1;rn ELSErn retValue := 0;rn END IF;rnrn COMMIT;rn ELSErn retValue := 2;rn END IF;rnrn COMMIT;rnEND SP_ADDORDERS;
oracle存储过程执行很慢
create or replace procedure statLogHistoryrn(startdate varchar2) isrn sqlstr1 varchar2(500);rn sqlstr2 varchar2(500);rn sqlstr3 varchar2(500);rn sqlstr4 varchar2(500);rnbeginrn sqlstr1:='insert into stat_log_2011rn select * from stat_logrn where accessdate='||startdate||' and accesstime<''||12:00:00||'' ' ;rnrn sqlstr2:='delete from stat_logrn where accessdate='||startdate||' and accesstime<''||12:00:00||'' ';rnrn sqlstr3:='insert into stat_log_2011rn select * from stat_logrn where accessdate='||startdate||' and accesstime>=''||12:00:00||'' and accesstime<=''||24:00:00||'' ';rnrn sqlstr4:='delete from stat_logrn where accessdate='||startdate||' and accesstime>=''||12:00:00||'' and accesstime<=''||24:00:00||'' ';rnrn execute immediate sqlstr1;rn commit;rn execute immediate sqlstr2;rn commit;rn execute immediate sqlstr3;rn commit;rn execute immediate sqlstr4;rn commit;rnend statLogHistory;rnrn执行这个存储过程好慢呀 大概7W条记录 ,用sql执行这4个sql语句大概30秒,存储过程就不行- -。求大神啊!
asp执行oracle存储过程问题,???
ORACLE:rnrnCREATE OR REPLACE FUNCTION reg_valid_account_webrn(rnv_account IN VARCHAR2rn)rnRETURN INTEGER ISrnn_count NUMBER;rnBEGINrnSELECT COUNT(1) INTO n_count FROM base_information WHERE account=v_account;rnIF n_count=0 THEN rnRETURN 1;rnELSE RETURN 0;rnEND IF;rnEND;rnrnASPrn在Conn可连接的情况下rnSet commd=Server.CreateObject("ADODB.Command")rn Set commd.activeconnection=Connrn commd.commandtype=4 rn commd.commandtext="reg_valid_account_web" '调用存储过程名 rn commd.Prepared=truern commd.Parameters.append commd.CreateParameter("@v_account",200,1,50,"zxl0110")rn commd.Parameters.append commd.CreateParameter("RETURN",3,4) '参数值 用户名,rn commd.execute()rn str=commd.parameters(0)rn Response.Write(str)rn当取checkr的时候就报rn[Oracle][ODBC][Ora]ORA-06550: 第 1 行, 第 7 列: PLS-00221: 'REG_VALID_ACCOUNT_WEB' 不是过程或尚未定义 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored rnrn
delphi如何执行oracle存储过程!
我建立一个oracle存储过程,在pl/sql中用nc350这个用户以sysdba登陆是可以执行的,但是以normal登陆执行不了,现在用delphi空间 ADOStoredProc执行 和用normal身份登陆一样无法执行。请问是不是权限的问题,怎末解决下
Oracle存储过程执行动态sql
Oracle存储过程执行动态SQl
ORACLE存储过程执行很慢!
里面使用了游标,4000行的数据也要执行5-10分钟,如果10000多行我等半个小时都执行不完·大家看看我的语句是不是有问题啊?插入的表里没有触发器,且是在我本地的数据库执行,我新手大家帮帮忙rn------------------------------------------------------------------rnCREATE OR REPLACE PROCEDURE proc_InitializeStock isrnBEGINrn DECLARErn CURSOR c_Initialize ISrn select ins_partcode,rn ins_partdesc,rn ins_partformat,rn ins_partuom,rn ins_cz,rn ins_th,rn ins_partlstore,rn ins_parthstore,rn ins_stoqty,rn ins_price,rn ins_planprice,rn ins_store,rn ins_bin,rn ins_zy,rn ins_xt,rn ins_zsb,rn ins_yt,rn ins_isinsrn from sys_initializestockrn WHERE ins_isins = '0';rn rn partCout number; --备件记录数rn tranCode o_Transactions.Tra_Code%type; --交易编号 rn binTemp number; --货位是否存在 rn iniStore sys_initializestock%rowtype; --单条数据rn rn BEGINrn --业务主表记录rn SELECT O_TRANS.NEXTVAL INTO tranCode FROM DUAL;rn insert into o_transactionsrn (tra_code, tra_desc, tra_type, tra_user)rn valuesrn (tranCode, '库存初始', 'R', 'admin');rn rn --开始游标rn OPEN c_Initialize;rn LOOPrn FETCH c_Initializern INTO iniStore;rn EXIT WHEN c_Initialize%NOTFOUND;rn --处理物资编码rn SELECT count(*)rn INTO partCoutrn FROM p_Partsrn WHERE Par_Code = trim(iniStore.Ins_Partcode);rn IF (partCout = 0) THENrn insert into p_partsrn (par_code,rn par_desc,rn par_format,rn par_uom,rn par_cz,rn par_th,rn par_lstore,rn par_hstore,rn par_createduser)rn valuesrn (trim(iniStore.ins_partcode),rn iniStore.ins_partdesc,rn iniStore.ins_partformat,rn iniStore.ins_partuom,rn iniStore.ins_cz,rn iniStore.ins_th,rn iniStore.ins_partlstore,rn iniStore.ins_parthstore,rn 'admin');rn END IF;rn --货位处理rn SELECT count(Bin_Code)rn INTO binTemprn FROM s_Binsrn WHERE bin_Code = trim(iniStore.ins_bin)rn AND bin_store = storecode_storename(iniStore.ins_store);rn IF (binTemp = 0) thenrn insert into s_binsrn (bin_store, bin_code)rn valuesrn (storecode_storename(iniStore.ins_store), trim(iniStore.ins_bin));rn end if;rn --处理业务rn insert into o_translinesrn (trl_trans,rn trl_type,rn trl_part,rn trl_store,rn trl_bin,rn trl_lot,rn trl_price,rn trl_qty,rn trl_filiale,rn trl_zy,rn trl_xt,rn trl_zsb,rn trl_yt,rn trl_planprice,rn TRL_USER,rn trl_date)rn valuesrn (tranCode,rn 'R',rn trim(iniStore.ins_partcode),rn storecode_storename(iniStore.ins_store),rn trim(iniStore.ins_bin),rn '20091125001',rn iniStore.ins_price,rn iniStore.ins_stoqty,rn filialecode_storecode(storecode_storename(iniStore.ins_store)),rn iniStore.ins_zy,rn iniStore.ins_xt,rn iniStore.ins_zsb,rn iniStore.ins_yt,rn iniStore.ins_planprice,rn 'admin',rn to_date('2010-1-31','yyyy-mm-dd'));rn rn --修改初始后状态 rn UPDATE sys_initializestockrn set ins_isins = '1'rn where ins_partcode = iniStore.ins_partcode;rn END LOOP;rn CLOSE c_Initialize;rn END;rnEND proc_InitializeStock;rn
C#执行Oracle存储过程问题
我在我的。cs代码中执行Oracle中的存储过程 报如下错误:rn其他信息: ORA-06550: line 1, column 7:rnPLS-00905: object TWDYEING.INSERTDELIVERY is invalidrnORA-06550: line 1, column 7:rnPL/SQL: Statement ignored
执行ORACLE存储过程的问题
rnrn我用aspnetpager做分页,现在需要一个存储过程用于返回分页后的记录。rnrn我先建了一个不需要传入参数的存储过程用做测试,但是在测试时报错。rn存储过程代码:rnCREATE OR REPLACE PACKAGE CRUD_LOCATIONS ASrnTYPE T_CURSOR IS REF CURSOR;rnPROCEDURE GetLocations (cur_Locations OUT T_CURSOR);rnEND CRUD_LOCATIONS;rn/rnCREATE OR REPLACE PACKAGE BODY CRUD_LOCATIONS ASrnPROCEDURE GetLocations (cur_Locations OUT T_CURSOR)rnISrnBEGINrn OPEN cur_Locations FORrn SELECT * FROM t_zzjg_info;rnEND GetLocations;rnEND CRUD_LOCATIONS;rn/rnrnc#调用代码:rnOracleCommand cm = new OracleCommand();rnOracleDataAdapter ap = new OracleDataAdapter();rnDataSet ListDs = new DataSet();rncm.Connection = DBAccess.OralceCN; rncm.CommandText="getlocations";rncm.CommandType = CommandType.StoredProcedure;rnap.SelectCommand=cm;rnap.Fill(ListDs); -->出错rnrn错误信息:rn"ORA-06550: line 1, column 7:\nPLS-00306: wrong number or types of arguments in call to 'GETLOCATIONS'\nORA-06550: line 1, column 7:\nPL/SQL: Statement ignored\n"rnrn然后我将cm.CommandText="getlocations";换成cm.CommandText="CRUD_LOCATIONS.getlocations";一样报错。rnrn还有ORCLE的联合查询语句该怎么用,支持INNER JOIN吗?rn
Java执行Oracle存储过程
1 创建表和存储过程,并在DB测试存储过程: ============================== CREATE TABLE ZTEST ( NAME VARCHAR2(10), ID NUMBER ) ============================== ============================== create or repla
oracle存储过程为何不能执行?
我创建了一个oracle存储过程(其状态总是invalid),不知道怎样执行它?比如:rncreate or replace procedure test as select * from scott.emp;rn如何去测试一下它呢?rn
Ant中执行oracle存储过程
同样的oracle dll脚本: [code=&quot;sql&quot;]declare c int; begin select count(*) into c from user_tables where table_name = upper('ACTIVESTARTTIMES');if c = 1 then execute immediate 'drop table &quot;ACTIVESTARTTIMES...
异步执行oracle存储过程
我有一个存储过程 pro_test(test_name in char)rnrnrnw然后 我想在pl\sql里面写 exec 或者call (两个都试了没成)来调起这个存储过程,让它去跑。rnrn当然用call调一个就能跑起来rnrn我现在是想在给个参数a调起来跑着的同时,再给个参数b再调起来一个跑去。就类似于并发执行。。求大神指点。
oracle存储过程执行文件的问题,
存储过程主要目的是数据管理和处理,但是我想在完成这些数据管理任务之后执行一个exe文件(可以把处理的一些信息传递给exe文件),请问该怎么做??谢谢!
请教执行oracle存储过程问题
OdbcCommand ProcComm=new OdbcCommand("ERecordsTitle",Conn);rnProcComm.CommandType=CommandType.StoredProcedure;rntryrnrn Conn.Open();rn ProcComm.ExecuteNonQuery();rnrnERecordsTitle是我写的oracle存储过程,在oracle里直接调用是可以的,但在C#里(以上代码)提示:SQL语句错误,请问是什么原因?是否不能用ODBC来调用ORACLE的存储过程?rn
PL/SQL 执行ORACLE存储过程
求在PL/SQL下执行ORACLE带参数的返回结果集的存储过程实例rn求ORACLE实现存储过程数据集输出的思路
Oracle存储过程执行初体验
1、首先在plsql中创建一个插入语句的存储过程(已经创建好表,两列,id,name) create or replace procedure proc_suibian_insert(id in varchar2,name in varchar2) as begin insert into suibian values(id, name); commit;/*事务提交*/ e...
在java执行Oracle存储过程
NULL 博文链接:https://guoapeng.iteye.com/blog/1096616
用动态sql执行oracle存储过程
1、调用procedure:           v_sql  := 'Begin pkg_name.procedure_name(:in_v1, :in_v2, :out_v1, :out_v2); End;' ;           EXECUTE IMMEDIATE v_sql using in in_value1,in in_value2,out out_value1,out out_
执行Oracle存储过程的问题
可以对Sql Server的存储过程进行如下方法的执行:rncom.CommandText = "execute ps_lubin 'HenryLu1', '1', '2'";rncom.CommandType = System.Data.CommandType.Text;rn其中ps_lubin是存储过程的名称,'HenryLu1', '1', '2' 是存储过程的参数列表。rnrn问:可以对Oracle的存储过程进行这样的调用吗?rn谢谢各位了!rn
ORACLE存储过程怎么执行?
CREATE OR REPLACE procedure P_TBLTESTrn(rn V_ID OUT integer,rn I_PIHAO VARCHAR2,rn S_ID VARCHAR2rn)rnIS rnBEGINrn V_ID :=FUNC_testTBL();rn INSERT INTO TESTTBL (TESTTBL.Id,TESTTBL.i_Pihao,TESTTBL.S_ID) VALUES(V_ID,I_PIHAO,S_ID);rnEND P_TBLTEST;rnrnrn[color=#FF0000]V_ID是自增字段 [/color]rnrn请问如何在PL/SQL Developer中执行该存储过程 ,往表中插入值rnrnEXECUTE P_TBLTEST(10,'p1','002')rn这样执行 一直保存rn
oracle存储过程中错误
SELECT NVL(fAvalibleNum,0),NVL(fRealNumMain,0),NVL(fCost,0),rnNVL(fBorrowNum,0),NVL(fLendNum,0),NVL(fMakingNum,0),NVL(fUnSendNum,0),rnNVL(fOnWayNum,0),NVL(fOrderNum,0)rninto v_fAvalibleNum,v_fRealNumMain,v_fCost ,v_fBorrowNum,v_fLendNum,rnv_fMakingNum ,v_fUnSendNum,v_fOnWayNum ,v_fOrderNumrnFROM TB_INV_GOODS rnWHERE vcAspID = v_vcAspID AND vcStoreCode = v_storeCode rnAND vcGoodsID = v_goodsID;rnoracle存储过程中执行这条语句时提示 ORA-01403未找到数据rn请问是什么错误?
oracle存储过程记录错误(急)
本人用存储过程对数据进行出处理,对于数据如果出错怎么样才能准确知道是哪条记录出错?如果不用游标有没有什么更好的方法?rn非常非常的感谢!!!
oracle存储过程有什么错误
这个过程是用PLSQL Developer 写的, 为什么在"procedures"目录下,图标上面总是有一个红色的"X"rnrncreate or replace procedure p_AddActionrn(v_name in VARCHAR2(50),rnv_desc in VARCHAR2(200),rnv_AffectRow out intrn )rnisrnbeginrn insert into tb_actionrn ( action_name, action_desc)rn valuesrn ( v_name, v_desc);rn rn v_AffectRow:=sql%rowcount;rn commit;rnend p_AddAction;rn/rnrnrn
oracle存储过程错误定位处理?
在存储过程中执行insert/select等操作的时候,如果执行到某一条记录的时候出错了,那怎么才能定位到出错的行号?rnrn比如说我在做关联rn insert into tmp(id,name,cino)rn select a.id,b.name,c.cino from tmp_id arn left join tmp_name brn on a.accno=b.accnorn left join tmp_cino crn on a.accno=c.accnorn where a.bal<>0rn在执行到某一条错误那怎么样才能定位出错误的行号,,非常感谢!!!
初学者的oracle存储过程错误
存储过程如下:rncreate or replace procedure getResultDatabyid(ids in integer,rst out sys_refcursor) isrnpids integer;rnbeginrn pids:=ids;rn open rst for select provinceid,province from d_province where provinceid:=pids;rnend getResultDatabyid;rnrn报错:rn/*rn PROCEDURE MYDB.GETRESULTDATABYID 编译错误rn 错误:PL/SQL: ORA-00920: 无效的关系运算符rn 行:5rn 文本:open rst for select provinceid,province from d_province where provinceid:=pids;rn 错误:PL/SQL: SQL Statement ignoredrn 行:5rn 文本:open rst for select provinceid,province from d_province where provinceid:=pids;rn*/rn
ORACLE存储过程错误,求助!
(rnSY_Info_Lei in Numberrn) rnisrnbeginrn select * from SY_Info where SY_Info_Lei=SY_Info_Lei order by SY_Info_ID desc;rnend SY_Info_All;rnrn以上是我写的过程,可是为什么不能通过呢?
数据执行保护------Explorer.exe错误
最近一个朋友遇到这样的问题:rn 开始系统很慢,后来出现“我的电脑”、“网上邻居”、“回收站”等桌面图标不能使rn用,总是提示“Explorer.exe遇到问题,需要关闭....”(那些讨厌的对人毫无帮助的东东)rn,后来我让他重新启动了一次电脑,可刚开机系统就提示rn“数据执行保护rn“为了帮助保护你的计算机,Windows已经关闭了此程序。rn“名称:Windows Explorerrn“发行者:Microsoft Corporation”rn然后“我的电脑”、“网上邻居”等还是不能打开,我知道Explorer是主要负责显示系统桌rn面上的图标以及任务栏的Windows Shell,上面的问题也一定是由于它被关闭才引起的,可为rn什么它会被关闭,特别是那个“数据执行保护”可以说明是有某个软件或者程序在与“Explrnorer”抢资源,但发生错误时我朋友什么也没有安装。rn我从来没遇到过这种问题 ,那位大虾知道该如何解决?帮帮忙,我不想重装系统啊...前不rn久刚装过啊rn补充:系统是XPrn
数据管道执行错误的问题
各位老大,我利用数据管道将数据从sqlanywhere传到sybase,执行start函数启动数据管道后,写入200或300条纪录就会报错rnerr: -16 Error in source database,但是手工执行该数据管道则没有问题。源数据库的错误会是什末?max errors已改为no limit.rnrnrnrnrnrnrnrnrnrnrnrnrnrn
js同步执行、异步执行和同步中的异步执行
参考: https://blog.csdn.net/qq_36117508/article/details/81609913 1.JS 执行机制是单线程。 2.JS的Event loop(事件循环)是JS的执行机制, 我们先了解到JS任务的执行分类为:同步任务和异步任务。 按照这种的分类方式JS的执行机制是: 首先,判断JS是同步还是异步,同步进入主线程,异步进入Event table。 其次,...
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表