【问题标题】:Create a View in Oracle with SQL使用 SQL 在 Oracle 中创建视图
【发布时间】:2015-04-28 23:40:39
【问题描述】:

我正在尝试创建一个视图,该视图既包含 tblSuppliers 表中的 strSupplierName 列,也包含 tblProducts 表中的 strProductName 列,但遇到了一些问题。任何帮助将不胜感激。

CREATE TABLE  "tblSuppliers" 
   (    "lngSupplierID" VARCHAR2(100) NOT NULL ENABLE, 
    "strSupplierName" VARCHAR2(100) NOT NULL ENABLE, 
    "strSupplierAddressStreet" VARCHAR2(200) NOT NULL ENABLE, 
    "strSupplierAddressCity" VARCHAR2(150) NOT NULL ENABLE, 
    "strSupplierAddressCountry" VARCHAR2(100) NOT NULL ENABLE, 
    "strSupplierAddressPostCode" VARCHAR2(25), 
    "strSupplierPhoneNo" VARCHAR2(15) NOT NULL ENABLE, 
    "strSupplierFaxNo" VARCHAR2(20), 
    "strPaymentTerms" VARCHAR2(500), 
     CONSTRAINT "tblSuppliers_PK" PRIMARY KEY ("lngSupplierID") ENABLE
   ) ;

CREATE OR REPLACE TRIGGER  "BI_tblSuppliers" 
  before insert on "tblSuppliers"               
  for each row  
begin   
  if :NEW."lngSupplierID" is null then 
    select "TBLSUPPLIERS_SEQ".nextval into :NEW."lngSupplierID" from dual; 
  end if; 
end; 


CREATE TABLE  "strProducts" 
   (    "lngProductID" VARCHAR2(100) NOT NULL ENABLE, 
    "strProductName" VARCHAR2(100) NOT NULL ENABLE, 
    "chkInStock" VARCHAR2(5) NOT NULL ENABLE, 
    "lngUnitsInStock" NUMBER(38,0) NOT NULL ENABLE, 
    "curProductUnitPurchasePrice" VARCHAR2(10), 
    "curProductUnitSalePrice" VARCHAR2(10), 
    "lngSupplierID" VARCHAR2(100), 
     CONSTRAINT "tblProducts_PK" PRIMARY KEY ("lngProductID") ENABLE
   ) ;

ALTER TABLE  "tblProducts" ADD FOREIGN KEY ("lngSupplierID")
      REFERENCES  "tblSuppliers" ("lngSupplierID") ENABLE;

CREATE OR REPLACE TRIGGER  "BI_tblProducts" 
  before insert on "tblProducts"               
  for each row  
begin   
  if :NEW."lngProductID" is null then 
    select "TBLPRODUCTS_SEQ".nextval into :NEW."lngProductID" from dual; 
  end if; 
end; 

/
ALTER TRIGGER  "BI_tblProducts" ENABLE;

【问题讨论】:

  • 请编辑您的问题并包括您的表格的定义。我的意思是,来吧 - 远程读心技术仍处于起步阶段...... :-)
  • 定义是指表的 SQL 代码吗?
  • @Jay 是的,定义就是您发布的内容。触发器可能与您的问题无关,但很难说,因为您没有解释您的问题实际上是什么。 “遇到一些麻烦”并不能帮助任何人了解你哪里出错了。听起来你可能有一个 CREATE VIEW 语句给你一个错误;如果是这样,请同时发布该声明以及您遇到的错误。
  • @Jay,您说“正在尝试创建”,但尚未发布视图声明,请发布该声明以及您收到的任何与此相关的错误。
  • 您遇到问题的create view 语句在哪里?

标签: sql oracle join view


【解决方案1】:

这就是你要找的吗?

CREATE VIEW "yourViewName" AS
SELECT
 p."lngProductID",
 p."strProductName",
 s."lngSupplierID",
 s."strSupplierName"
FROM "strProducts" p
INNER JOIN "tblSuppliers" s ON s."lngSupplierID" = p."lngSupplierID"

【讨论】:

  • 使用了这个,但将最后一个 strProducts 修改为 tblProducts 效果很好!
猜你喜欢
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
相关资源
最近更新 更多