『壹』 使用plsqldev調試時,如何查看結構體變數的值
dev c++調試時查看變數的值的方法:
1、 開始調試後,在圖示區域按右鍵,選擇"添加監測(Add Watch)";或者直接按 F4;
2、在彈出窗口中輸入用戶想查看的變數名,然後按確定(OK),就可以看到該變數的值;
3、用滑鼠選擇源文件中的變數名,然後按 F4 也可以查看變數的值,該變數會出現在左邊的監測列表中;
4、如果用戶在環境選項(Environment Options)中選擇了"通過滑鼠監測變數(Watch variable under mouse)",用滑鼠指向您想要查看的變數一段時間,該變數也會被添加到監測列表中。
重要提示:
1). 當想查看指針指向的變數的值的時候,按 F4,然後輸入星號及指針的名字(如 *pointer)。
如果沒加 *,看到的將會是一個地址,也就是指針的值。
2). 有時,調試器(Debugger)可能不知道某個指針的類型,從而不能顯示該指針指向的變數的值。
此時,我們需要手動輸入該指針的類型。按 F4 後,以 *(type *)pointer 形式輸入。例如,
*(int *)pointer。
『貳』 PLSQL 定義含有多個欄位的數組類型變數
可以把用戶的多個信息封裝成一個自定義的屬性。
假設我們的用戶含有:姓名,年齡以及性別屬性
自定義屬性:
TYPE user_info_type IS RECORD(
user_name VARCHAR2(20),
user_age NUMBER(3),
user_sex VARCHAR2(5));1234
然後我們就可以直接使用這個屬性來創建數組了!
TYPE user_info_arr_type IS TABLE OF user_info_type INDEX BY BINARY_INTEGER;
user_info_arr user_info_arr_type;12
完整的測試代碼如下:
-- PLSQL 定義含有多個欄位的數組類型變數
DECLARE TYPE user_info_type IS RECORD(
user_name VARCHAR2(20),
user_age NUMBER(3),
user_sex VARCHAR2(5)); TYPE user_info_arr_type IS TABLE OF user_info_type INDEX BY BINARY_INTEGER;
user_info_arr user_info_arr_type;BEGIN
user_info_arr(0).user_name := '張三';
user_info_arr(0).user_age := 19;
user_info_arr(0).user_sex := '男';
user_info_arr(1).user_name := '李菁菁';
user_info_arr(1).user_age := 23;
user_info_arr(1).user_sex := '女'; FOR i IN 0 .. 1
LOOP
dbms_output.put_line('User Name:' || user_info_arr(i).user_name);
dbms_output.put_line('User Age:' || user_info_arr(i).user_age);
dbms_output.put_line('User Sex:' || user_info_arr(i).user_sex); END LOOP;END;
輸出結果:
User Name:張三
User Age:19
User Sex:男
User Name:李菁菁
User Age:23
User Sex:女
這樣我們就創建了一個含有多個欄位的數組類型變數了!
『叄』 在PL/SQL中變數的賦值所用的「:=」與「=」有什麼區別
一個是賦值,一個是比較值
『肆』 plsql中調試時,如果查看long變數中的內容
首先你的用戶得有存儲過程的debug執行許可權。然後在plsql的左側菜單中找到你的調試的package或function,打開後plsql右邊窗口是分兩列的,第一列是存儲過程的方法名,第二列窗口是存儲過程的具體源代碼。
在第一列的方法名上,右鍵可以看到有debug選項,點擊bug可以單獨對此方法進行調試,你可以在源代碼設置斷點,跟eclipse斷點功能近似
實在不行可以通過dbms_output.put_line();輸出變數值
『伍』 PLSQL中,select 變數 from al 怎麼寫
PLSQL中,select 變數 from al 怎麼寫
declare
m_sql_string varchar(1024);
m_month date:=sysdate;
begin
m_month:=add_months(m_month,-1);
m_sql_string:='insert into yc_oper_log select ''bill'',sysdate,m_month from al';
execute immediate m_sql_string;
commit;
end;
ORA-00904: "M_MONTH": 無效的標識符
ORA-06512: 在line 8
SQL>
我用的是動態SQL。
『陸』 plsql 字元串中怎麼用變數
在變數名兩邊加上單引號就可以了。tbs_array tbs_type_array:=tbs_type_array('tbs1','tbs2');
『柒』 plsql中聲明變數時可以指定哪種類型的約束
主鍵約束(Primary Key constraint):要求主鍵列數據唯一,並且不允許為空。
唯一約束(Unique constraint):要求該列唯一,允許為空,但只能出現一個空值。
檢查約束(Check constraint):某列取值范圍限制,格式限制等,如有關年齡、郵箱(必須有@)的約束。
默認約束(Default constraint):某列的默認值,如在資料庫里有一項數據很多重復,可以設為默認值。
外鍵約束(Foreign Key constraint):用於在兩個表之間建立關系,需要指定引用主表的哪一列。
『捌』 plsqlbeginend中可以定義變數嗎
plsqlbeginend中可以定義變數。根據相關公開信息顯示變數類型data_type決定了其中存儲的數據類型。如果變數只能存儲一個單獨的值,則該變數稱為標量變數。如果變數可以粗出多個值(如表中的一行記錄),則該變數稱為符合類型的變數。標量量變數所使用的數據類型包括字元、數字、日期和布爾類型等。
『玖』 在plsql中,使用綁定變數的方法除了動態sql外,還有別的方式嗎
plsql裡面直接使用變數也是使用了綁定變數的。
比如在存儲過程中使用
select empno from emp where empno=p_empno ;
其實使用的也是綁定變數。
在內存中是類似這樣的格式:
SELECT EMPNO FROM EMP WHERE EMPNO=:B1
當然這也和資料庫參數plsql_optimize_level,但是一般都不會關注。
『拾』 在PLSQL包種的全局變數應該怎麼去用么,盡量少用嗎
在一個函數裡面定義的變數就是局部變數,它的作用只在這個函數內部,其他的函數想要調用它就調用不到。 在函數之外定義的變數就是全局變數,函數都可以調用該變數,這樣就不用每一個函數都得定義一遍該變數。