簡體   English   中英

ORA-22814: 屬性或元素值大於類型中指定的值

[英]ORA-22814: attribute or element value is larger than specified in type

SQL> create or replace type societe 
       as object (nom_societe varchar2(20),ville_societe varchar2(20));
   /

create or replace type produit as object(
nom varchar2(20),
poids number(9),
couleur varchar2(20),
composants varchar2(2));
/



SQL> insert into commande(NUMERO,DATE_SOUMISSION,DATE_ENVOI,SOCIETE,PRODUIT) values(
  2  1,to_date('2013/03/11','yyyy/mm/dd'),to_date('2014/05/12','yyyy/mm/dd'),
  3  societe('BME','FES'),produit('prod1',12,'noir','aluminium'));
insert into commande(NUMERO,DATE_SOUMISSION,DATE_ENVOI,SOCIETE,PRODUIT) values(
            *
ERROR at line 1:
ORA-22814: attribute or element value is larger than specified in type


SQL> create table commande(
  2  numero number(9),
  3  date_soumission date,
  4  date_envoi date,
  5  societe societe,
  6  produit produit);

復合物 varchar2(2)

'鋁'

顯然,您嘗試插入到復合材料屬性中的第四個元素“”大於 2 個字符/字節,因為數據類型的大小為VARCHAR2(2) 增加composants的大小,以便它可以存儲元素。

CREATE OR REPLACE TYPE societe AS OBJECT (
    nom_societe     VARCHAR2(20),
    ville_societe   VARCHAR2(20)
)
/

CREATE OR REPLACE TYPE produit AS OBJECT (
    nom          VARCHAR2(20),
    poids        NUMBER(9),
    couleur      VARCHAR2(20),
    composants   VARCHAR2(20)
)
/

CREATE TABLE commande (
    numero            NUMBER(9),
    date_soumission   DATE,
    date_envoi        DATE,
    society           societe,
    product           produit
);

現在您可以通過以下方式插入:

INSERT INTO commande (
    numero,
    date_soumission,
    date_envoi,
    society,
    product
) VALUES (
    1,
    TO_DATE('2013/03/11', 'yyyy/mm/dd'),
    TO_DATE('2014/05/12', 'yyyy/mm/dd'),
    societe('BME', 'FES'),
    produit('prod1', 12, 'noir', 'aluminium')
);

您可以檢查插入的數據:

SELECT * FROM commande;

NUMERO DATE_SOU DATE_ENV SOCIETY(NOM_SOCIETE,  PRODUCT(NOM, POIDS, COULEUR, COMPOSANTS) 
------ -------- -------- --------------------- -----------------------------------------
     1 11-03-13 12-05-14 SOCIETE('BME', 'FES') PRODUIT('prod1', 12, 'noir', 'aluminium')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM