第一次寫Oracle碰到的問題

2022-05-02 01:24:07 字數 1268 閱讀 5014

今天是第一次寫oracle的儲存過程,由於新手,被一些東西糾結了一天。特此記錄下,讓自己以後不要在犯錯了。

1.count(*)

第一次寫oracle的儲存過程,沒什麼經驗,就count(*)這個問題,讓我正正花費了乙個早上。

example:

create or replace procedure demo( identitycardno in varchar2) as

v_count number;

begin ...

select count(*) into v_count from userinfo where identitycardno(身份證)=identitycardno 按理說,這只是個簡單語句。就是看看這個身份證

在userinfo表中是否存在值。v_count只會是0或者1,可是輸出的時候會輸出500+或是5000+。直接在sql視窗執行都沒問題,但是在

儲存過程裡就出現這奇怪的數字。

解決:後來是發現我定義的引數名和資料庫中表的欄位名一樣了,將定義的引數名(identitycardno)成改掉就可以了。(但是還是不清楚原理是為什麼?如果大家有知道原理的,請告訴下我。)

2.net呼叫問題了

資料庫中一定存在"demo" 的儲存過程,但是呼叫

oracleparameter parameter = new oracleparameter;

parameter[0].value = ...;

parameter[1].value = ...;

parameter[0].direction = parameterdirection.input;

parameter[1].direction = parameterdirection.output;

int roweffect;

對於儲存過程中,含有輸出型別的引數,如: resultvalue out number   時,在介面上 傳參時,不能用   int result= dbhelperora.runprocedure("prj_personallogtask_pkg.changeworktask", param,out roweffect);     這種形式    要修改成:

修改成:dbhelperora.runprocedure("demo", parameter);

int resulenum=convert.toint32(parameter[1].value);

這樣就可以了。

由於第一次寫oracle儲存過程,就這兩個問題真是困擾了一天,先自己記錄一下,防止以後犯同樣的錯誤。

第一次碰到VMProtect

第一次碰到虛擬機器保護技術,確實很強大!用od和imunitydbg一載入,直接退出,不給任何跟蹤的機會!用windbg開啟,因為預設不是停在程式的入口,故一開啟直接報 憑著自己已往的經驗,找到程式的入口點,直接修改入口的兩個位元組 int 3 程式爆出異常,再選擇除錯,卻還是靜靜地退出了。好比你想...

第一次寫部落格

今天是我第一次寫自己的部落格 感到很激動 我是乙個程式設計師 之前一直看一些關於如何學習程式語言的貼子 大家都說學習一門語言 在於積累 而積累不能都考腦子儲存起來 需要整理成乙個自己的小金庫 在這個小金庫中有我在工作開發中遇到的乙個乙個的問題 我們往往對於新的問題要花費相對較長的時間去解決,對於我 ...

第一次寫部落格

這是我第一次寫部落格,也不知道到底該寫點什麼,感覺很多需要寫,但還是不那麼的自信,不論怎麼樣,還是希望能夠記錄一下自己作為一名程式猿這點點滴滴的事情,算是一段經歷吧。希望看到的人不要噴我。我是菜鳥,菜的不能再菜的鳥。大神就不要來嘲笑小弟了。剛開始寫程式還是跟著一群有志向大四的學長。可能就是這一點點的...