Sql 在创建视图时,将select语句中的函数与多个表一起使用

Sql 在创建视图时,将select语句中的函数与多个表一起使用,sql,oracle,Sql,Oracle,我正在使用oracle SQL developer,即创建视图工具。我有一个名为LastNameFirst的函数,我想用它来重新组织客户的名字/姓氏,使其以姓氏为第一名显示 SELECT SALE.SaleID,SALE.SaleDate, CUSTOMER.LastNameFirst(LastName,FirstName), SALE_ITEM.SaleItemID,SALE_ITEM.ItemID,ITEM.ItemDescription, ITEM.ItemPrice FROM SAL

我正在使用oracle SQL developer,即创建视图工具。我有一个名为LastNameFirst的函数,我想用它来重新组织客户的名字/姓氏,使其以姓氏为第一名显示

SELECT SALE.SaleID,SALE.SaleDate, CUSTOMER.LastNameFirst(LastName,FirstName), 
SALE_ITEM.SaleItemID,SALE_ITEM.ItemID,ITEM.ItemDescription, ITEM.ItemPrice

FROM SALE_ITEM
INNER JOIN SALE on SALE.SaleID = SALE_ITEM.SaleID
INNER JOIN ITEM on ITEM.ItemID = SALE_ITEM.ItemID
INNER JOIN CUSTOMER on CUSTOMER.CustomerID = SALE.CUSTOMERID;
我得到的错误是: ORA-00904:“客户”。“LASTNAMEFIRST”:无效标识符

如何在select语句的该部分调用函数?除了以某种方式使用“交叉应用”或“外部应用”之外,我似乎找不到在涉及连接的select语句中调用函数的任何示例。我理解(我认为)语法是

SELECT 'tableName'.'columnName'
我知道我的函数不是一列,这就是为什么我会得到那个错误。但我真的不知道如何设置代码。我试着把它改成:

SELECT SALE.SaleID,SALE.SaleDate,CUSTOMER.LastName, CUSTOMER.FirstName AS LastNameFirst(LastName,FirstName),SALE_ITEM.SaleItemID,SALE_ITEM.ItemID,ITEM.ItemDescription, ITEM.ItemPrice

但这样对我也没用。如果有人能给我帮助,我将不胜感激

函数不是允许对其进行周期限定的表的属性。但是,其他对象中的函数和表共享相同的命名空间。如中所述:

以下架构对象共享一个命名空间:

  • 桌子
  • 观点
  • 序列
  • 私人同义词
  • 独立程序
  • 独立存储函数
  • 包裹
  • 物化视图
  • 用户定义类型
因此,只需删除
客户。
限定符,因为模式是隐式定义的:

SELECT SALE.SaleID, 
       SALE.SaleDate, 
       LastNameFirst(LastName, FirstName) AS Customer_Name, ...
或者,以以下方式明确限定所有表和函数对象上的架构名称:
“schema”、“table”、“column”或
“schema”、“function”

SELECT myschema.SALE.SaleID, 
       myschema.SALE.SaleDate, 
       myschema.LastNameFirst(myschema.CUSTOMER.LastName, 
                              myschema.CUSTOMER.FirstName) AS Customer_Name, ...