主要介紹基本的crud操作語句以及相關知識點。
使用嵌入式insert語句一次插入一行或多行記錄
exec sql insert into talbe_name (***,***,***) value (:***,:***,:***);
exec sql begin declare section;
char aaa[100][20];
float bbb[100];
int insert_rows;
exec sql end declare section;
insert_rows=50;
exec sql insert for :insert_rows
insert into table_name(aaa,bbb)
values (:aaa,:bbb);
往一張表中插記錄,首先需要保證登入的使用者有執行許可權;
for子句用於設定處理的陣列元素數量,適用於insert,update,delete操作。for之後的一定需要是sql宿主變數,而不可以為c語言的常量與字面值;
使用陣列時,where子句後要不全部是標量,要不全部為陣列,二者不可以混用。如果為標量,則oracle執行一次,如果為陣列,則oracle對每一組陣列元素執行一次insert語句。
where子句中的陣列大小可以不同,在這種情況下:
使用嵌入式update語句更新資料庫中的記錄資訊
exec sql update table_name
set aaa=:aaa
where bbb=:bbb
char bbb[10][20];
float aaa;
exec sql update table_name
set ***=:aaa where bbb=:bbb
執行更新時,必須有執行許可權
使用陣列時,where子句後要不全部是標量,要不全部為陣列,二者不可以混用。如果為標量,則oracle執行一次,如果為陣列,則oracle對每一組陣列元素執行一次update語句。
where子句中的陣列大小可以不同,在這種情況下:
累計修改的行數在sqlca的sqlerrd[2]中返回
如果沒有滿足條件的記錄被更新,則返回錯誤資訊
使用嵌入式delete語句,刪除資料庫中的記錄資訊
exec sql delete from table name where ***=:***;
/*宣告游標*/
exec sql declare tmp_cursor for select ….
/*開啟當前游標*/
exec sql open tmp_cursor ;
/*執行fetch 動作*/
exec sql fetch tmp_cursor into:***,:yyy;
exec sql delete from table_name
where current of tmp_cursor;
int number[10];
exec sql delete from table_name where ***=:***;
首先需要擁有相應表的刪除許可權
使用陣列時,where子句後要不全部是標量,要不全部為陣列,二者不可以混用。如果為標量,則oracle執行一次,如果為陣列,則oracle對每一組陣列元素執行一次delete語句。
where子句中的陣列大小可以不同,在這種情況下:
如果沒有滿足delete的條件的行被刪除,則返回"not found"錯誤碼
sqlca中的sqlerrd[2]返回刪除的累計行數。
測試基礎(Python基礎教程(第3版 )
測試基礎 測試在先,編碼在後。這也稱為測試驅動的程式設計。先編寫測試再編寫 並不是為了發現bug,而是為了檢查 是否管用。測試四步曲 1 確定需要實現的新功能。可將其記錄下來,再為之編寫乙個測試。2 編寫實現功能的框架 讓程式能夠執行 不存在語法錯誤之類的問題 但測試依然 無法通過。測試失敗是很重要...
ROS基礎教程 官網翻譯版
ros教程整理 安裝並配置ros環境 本教程詳細描述了ros的安裝與環境配置。ros檔案系統介紹 本教程介紹ros檔案系統概念,包括命令列工具roscd rosls和 rospack 的使用。建立ros程式包 本教程介紹如何使用 roscreate pkg 或catkin 建立乙個新程式包,並使用 ...
模組(Python基礎教程(第3版 )
集合 集合是可變的,因此不能用作字典中的鍵。另乙個問題是,集合只能包含不可變 可雜湊 的值,因此不能包含其他集合。由於在現實世界中經常會遇到集合的集合,因此這可能是個問題。所幸還有frozenset型別,它表示不可變 可雜湊 的集合。堆 位置 i處的元素總是大於位置i 2處的元素 反過來說就是小於位...