我有一个存储过程
create or replace procedure UpdateWellState(v_wellState IN varchar2, v_remark IN varchar2) is
vCount Number(7);
begin
select count(*) into vCount from wellstate;
if vCount < 1
then insert into wellstate values( NULL, v_wellState, v_remark );
else
update wellstate set STATUS_CURRENT = v_wellState, REMARKS = v_remark;
end if;
end UpdateWellState;
在pl/sql中测试是正确的。
用sqlplus 执行 exec updatewellstate( 'XXX', 'YYY' );成功;
在QT中
qsSql = "exec updatewellstate ?, ?";
sqlQuery.prepare( qsSql );
sqlQuery.bindValue( 0, "xxx" );
sqlQuery.bindValue( 1, "yyy" );
bool b = sqlQuery.exec();
qDebug( sqlQuery.lastError().text() );
return b;
不成功;
qsSql = "exec updatewellstate (?, ?)";
sqlQuery.prepare( qsSql );
sqlQuery.bindValue( 0, "xxx" );
sqlQuery.bindValue( 1, "yyy" );
bool b = sqlQuery.exec();
qDebug( sqlQuery.lastError().text() );
return b;
也不成功
qsSql = "call updatewellstate ?, ?";
sqlQuery.prepare( qsSql );
sqlQuery.bindValue( 0, "xxx" );
sqlQuery.bindValue( 1, "yyy" );
bool b = sqlQuery.exec();
qDebug( sqlQuery.lastError().text() );
return b;
也不行
qsSql = "call updatewellstate (?, ?)";
sqlQuery.prepare( qsSql );
sqlQuery.bindValue( 0, "xxx" );
sqlQuery.bindValue( 1, "yyy" );
bool b = sqlQuery.exec();
qDebug( sqlQuery.lastError().text() );
return b;
还是不行。请高手指教到底怎么调用oracle的存储过程