CREATE TABLE produtos ( id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, codigo VARCHAR2(50), descricao VARCHAR2(4000) ); CREATE INDEX idx_texto_descricao ON produtos(descricao) INDEXTYPE IS CTXSYS.CONTEXT; -- Tabela principal: NOTA_FISCAL CREATE TABLE NOTA_FISCAL ( NUMERO_NF VARCHAR2(20) PRIMARY KEY, CODIGO_CLIENTE VARCHAR2(20) NOT NULL, NOME_CLIENTE VARCHAR2(100), VALOR_TOTAL NUMBER(15, 2), DATA_SAIDA DATE, CIDADE VARCHAR2(100), ESTADO VARCHAR2(2) -- Ex: SP, RJ, MG ); -- Tabela de itens: ITEM_NOTA_FISCAL CREATE TABLE ITEM_NOTA_FISCAL ( NUMERO_NF VARCHAR2(20) NOT NULL, NUMERO_ITEM NUMBER(5) NOT NULL, CODIGO_EAN VARCHAR2(20), DESCRICAO_PRODUTO VARCHAR2(200), VALOR_UNITARIO NUMBER(12, 4), QUANTIDADE NUMBER(10, 2), VALOR_TOTAL NUMBER(15, 2), VALOR_IMPOSTOS NUMBER(15, 2), -- Chave primária composta CONSTRAINT PK_ITEM_NOTA PRIMARY KEY (NUMERO_NF, NUMERO_ITEM), -- Chave estrangeira para NOTA_FISCAL CONSTRAINT FK_ITEM_NOTA_FISCAL FOREIGN KEY (NUMERO_NF) REFERENCES NOTA_FISCAL (NUMERO_NF) ON DELETE CASCADE ); -- Índice para acelerar busca por código de produto CREATE INDEX IDX_ITEM_EAN ON ITEM_NOTA_FISCAL (CODIGO_EAN);