從兩段**中分析出兩個使用總結:
第一種形式
declare
v_max_id number;
begin
--將表中主鍵的最大值找出賦給v_max_id
select
max(deptno)
into v_max_id
from dept;
--對資料表進行操作
insert
into dept
values(v_max_id+10,
'hr',
'china');
for i
in (
select deptno
from dept
where deptno >=
'50') loop
delete
from dept
where deptno = i.deptno;
-- dbms_output.put_line(i.deptno);
end loop;
end;
如果你的for中in後面的集合使用的是
select deptno
from dept
where deptno >=
'50'
這樣的形式,那麼你就得注意了,在後面呼叫i的時候,不能直接就使用i,這樣程式會報錯的,因為select出來的是乙個集合,i所對應的也是乙個大的集合,如果直接使用i,程式是找不到具體值資訊的,正確的使用應該是
i.deptno
以此來指定大集合中的小元素,這樣就可以了。
另一種形式
declare
v_max_id number;
begin
--將表中主鍵的最大值找出賦給v_max_id
select
max(deptno)
into v_max_id
from dept;
--對資料表進行操作
insert
into dept
values(v_max_id+10,
'hr',
'china');
for i
in 50..90 loop
delete
from dept
where deptno = i;
end loop;
end;
如果in後面直接給出了乙個具體的集合,例如
for i
in 50..90 loop
在這種情況下就可以直接使用i了,具體見以上**。
關於shell中的pl sql指令碼錯誤排查與分析
今天有個同事問我乙個問題,他說執行shell指令碼的時候丟擲了ora 錯誤,但是對於錯誤的原因沒有思路,想讓我幫他看看。我檢視了下,指令碼的結構比較清晰。指令碼是有乙個shell指令碼,乙個sql檔案組成,shell指令碼作為基本的流程控制,sql檔案中是pl sql指令碼。大體明白了shell指令...
關於深度學習中Attention原理的總結
attention翻譯為注意力,對於不同的輸入資訊根據重要性不同賦予不同的權重。於人類對同一事物的注意力不同而得名。可以根據圖一來做簡單的理解,其中顏色較深的部分,指的是比較關注的分布。在nlp中,attention 於seqseq中,在最後乙個timestep後encode輸出開始 decode的...
C 中StringBuilder類的使用總結
string 物件是不可改變的。每次使用 system.string 類中的方法之一時,都要在記憶體中建立乙個新的字串物件,這就需要為該新物件分配新的空間。在需要對字串執行重複修改的情況下,與建立新的 string 物件相關的系統開銷可能會非常昂貴。如果要修改字串而不建立新的物件,則可以使用 sys...