[英]PL/SQL Record not stored in Database (not created)
我有以下用於創建或定義類型為 Record 的過程:
create or replace procedure p_two
as
type sample_record is RECORD
(
name varchar2(32),
age number,
emp_id varchar2 (32)
);
begin
commit;
dbms_output.put_line('Hello from procedure');
end p_two;
我剛開始使用 PL/SQL 和 Oracle DB 並在 PL/SQL Developer 上嘗試所有這些,並在 SQL 窗口中使用以下代碼來執行該過程:
begin
p_two;
dbms_output.enable;
dbms_output.put_line('Hello');
commit;
end;
問題是代碼運行成功,我Hello from procedure
輸出選項卡中的Hello from procedure
中獲得輸出Hello
和Hello from procedure
但“sample_record”未存儲在數據庫中或未創建記錄。 它不顯示在 PL/SQL Developer 的types
選項卡下。
我直接在 SQL 窗口中嘗試了以下操作:
create or replace type sample_record is RECORD
(
name varchar2(32),
age number,
emp_id varchar2 (32)
);
它編譯出錯。 但是這次'sample_record'在types
下可見,但它顯示錯誤並且不顯示任何屬性。 我讀了一些關於它並遇到一些帖子說
Record is not supported by SQL schema and it is only supported in PL/SQL
我認為這就是為什么即使它顯示在類型下也會出現錯誤的原因。
我的疑問是如何創建和存儲記錄類型,因為在 PL/SQL 塊中執行此操作顯然不會存儲它,並且 SQL 模式不直接支持它,因此編譯時會出錯。
我是這些技術的新手,因為我主要使用 MySQL,但需要盡快熟悉 PL/SQL 和 Oracle Db 以進行項目。 我試圖做的是創建一個查詢程序。 所以我基本上創建了一個對象sample_object
並定義了一個sample_object
類型的表sample_table
但我無法直接在表中存儲值。 所以我想我必須創建一個記錄並使用它來填充從對象創建的表。 我仍然無法找到正確的方法,也找不到任何使用對象和記錄來定義表並填充它的帖子。 如果有人可以分享一篇文章或教程,那就太好了。
沒有架構級別RECORD
。 您可以使用OBJECT
關鍵字而不是RECORD
來創建TYPE
CREATE OR REPLACE type sample_record IS OBJECT
(
name varchar2(32),
age number,
emp_id varchar2 (32)
);
您還可以使用可全局使用的包級別記錄。
CREATE OR REPLACE package pkg_objtest AS
TYPE sample_record IS RECORD (
name varchar2(32),
age number,
emp_id varchar2 (32)
);
END;
/
DECLARE
srec pkg_objtest.sample_record;
BEGIN
srec.name := 'Mathews';
srec.age := 25;
srec.emp_id := 'U203';
END;
/
Package PKG_OBJTEST compiled
PL/SQL procedure successfully completed.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.