Using a function in a select statement with multiple tables while creating a view
up vote
1
down vote
favorite
I'm using oracle SQL developer, the create view tool. I have a function called LastNameFirst that I want to use to reorganize the customers first name / last name to appear with the last name being first.
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;
The error i'm getting is :
ORA-00904: "CUSTOMER"."LASTNAMEFIRST": invalid identifier
How do I call the function in that part of my select statement? I can't seem to find any examples of functions being called in select statements where joins are involved, other than using "cross apply" or "outer apply" in some way. I understand (I think) that the syntax is
SELECT 'tableName'.'columnName'
and I know my function isn't a column and that's why I'm getting that error. But I'm really not sure of how to set up the code. I tried changing it to something like:
SELECT SALE.SaleID,SALE.SaleDate,CUSTOMER.LastName, CUSTOMER.FirstName AS LastNameFirst(LastName,FirstName),SALE_ITEM.SaleItemID,SALE_ITEM.ItemID,ITEM.ItemDescription, ITEM.ItemPrice
But nothing like that worked for me either. I'd appreciate any help anyone could give me.
sql oracle
add a comment |
up vote
1
down vote
favorite
I'm using oracle SQL developer, the create view tool. I have a function called LastNameFirst that I want to use to reorganize the customers first name / last name to appear with the last name being first.
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;
The error i'm getting is :
ORA-00904: "CUSTOMER"."LASTNAMEFIRST": invalid identifier
How do I call the function in that part of my select statement? I can't seem to find any examples of functions being called in select statements where joins are involved, other than using "cross apply" or "outer apply" in some way. I understand (I think) that the syntax is
SELECT 'tableName'.'columnName'
and I know my function isn't a column and that's why I'm getting that error. But I'm really not sure of how to set up the code. I tried changing it to something like:
SELECT SALE.SaleID,SALE.SaleDate,CUSTOMER.LastName, CUSTOMER.FirstName AS LastNameFirst(LastName,FirstName),SALE_ITEM.SaleItemID,SALE_ITEM.ItemID,ITEM.ItemDescription, ITEM.ItemPrice
But nothing like that worked for me either. I'd appreciate any help anyone could give me.
sql oracle
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I'm using oracle SQL developer, the create view tool. I have a function called LastNameFirst that I want to use to reorganize the customers first name / last name to appear with the last name being first.
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;
The error i'm getting is :
ORA-00904: "CUSTOMER"."LASTNAMEFIRST": invalid identifier
How do I call the function in that part of my select statement? I can't seem to find any examples of functions being called in select statements where joins are involved, other than using "cross apply" or "outer apply" in some way. I understand (I think) that the syntax is
SELECT 'tableName'.'columnName'
and I know my function isn't a column and that's why I'm getting that error. But I'm really not sure of how to set up the code. I tried changing it to something like:
SELECT SALE.SaleID,SALE.SaleDate,CUSTOMER.LastName, CUSTOMER.FirstName AS LastNameFirst(LastName,FirstName),SALE_ITEM.SaleItemID,SALE_ITEM.ItemID,ITEM.ItemDescription, ITEM.ItemPrice
But nothing like that worked for me either. I'd appreciate any help anyone could give me.
sql oracle
I'm using oracle SQL developer, the create view tool. I have a function called LastNameFirst that I want to use to reorganize the customers first name / last name to appear with the last name being first.
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;
The error i'm getting is :
ORA-00904: "CUSTOMER"."LASTNAMEFIRST": invalid identifier
How do I call the function in that part of my select statement? I can't seem to find any examples of functions being called in select statements where joins are involved, other than using "cross apply" or "outer apply" in some way. I understand (I think) that the syntax is
SELECT 'tableName'.'columnName'
and I know my function isn't a column and that's why I'm getting that error. But I'm really not sure of how to set up the code. I tried changing it to something like:
SELECT SALE.SaleID,SALE.SaleDate,CUSTOMER.LastName, CUSTOMER.FirstName AS LastNameFirst(LastName,FirstName),SALE_ITEM.SaleItemID,SALE_ITEM.ItemID,ITEM.ItemDescription, ITEM.ItemPrice
But nothing like that worked for me either. I'd appreciate any help anyone could give me.
sql oracle
sql oracle
asked Nov 14 at 2:10
J.Griff2
61
61
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
Functions are not properties of tables to be allowed to period qualify them. However, functions and tables among other objects share the same namespace. As mentioned in docs:
The following schema objects share one namespace:
- Tables
- Views
- Sequences
- Private synonyms
- Stand-alone procedures
- Stand-alone stored functions
- Packages
- Materialized views
- User-defined types
Therefore, simply remove the CUSTOMER.
qualifier as schema is implicitly defined:
SELECT SALE.SaleID,
SALE.SaleDate,
LastNameFirst(LastName, FirstName) AS Customer_Name, ...
Alternatively, explicitly qualify the schema name on all table and function objects in the manner: "schema"."table"."column"
or "schema"."function"
:
SELECT myschema.SALE.SaleID,
myschema.SALE.SaleDate,
myschema.LastNameFirst(myschema.CUSTOMER.LastName,
myschema.CUSTOMER.FirstName) AS Customer_Name, ...
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
Functions are not properties of tables to be allowed to period qualify them. However, functions and tables among other objects share the same namespace. As mentioned in docs:
The following schema objects share one namespace:
- Tables
- Views
- Sequences
- Private synonyms
- Stand-alone procedures
- Stand-alone stored functions
- Packages
- Materialized views
- User-defined types
Therefore, simply remove the CUSTOMER.
qualifier as schema is implicitly defined:
SELECT SALE.SaleID,
SALE.SaleDate,
LastNameFirst(LastName, FirstName) AS Customer_Name, ...
Alternatively, explicitly qualify the schema name on all table and function objects in the manner: "schema"."table"."column"
or "schema"."function"
:
SELECT myschema.SALE.SaleID,
myschema.SALE.SaleDate,
myschema.LastNameFirst(myschema.CUSTOMER.LastName,
myschema.CUSTOMER.FirstName) AS Customer_Name, ...
add a comment |
up vote
1
down vote
Functions are not properties of tables to be allowed to period qualify them. However, functions and tables among other objects share the same namespace. As mentioned in docs:
The following schema objects share one namespace:
- Tables
- Views
- Sequences
- Private synonyms
- Stand-alone procedures
- Stand-alone stored functions
- Packages
- Materialized views
- User-defined types
Therefore, simply remove the CUSTOMER.
qualifier as schema is implicitly defined:
SELECT SALE.SaleID,
SALE.SaleDate,
LastNameFirst(LastName, FirstName) AS Customer_Name, ...
Alternatively, explicitly qualify the schema name on all table and function objects in the manner: "schema"."table"."column"
or "schema"."function"
:
SELECT myschema.SALE.SaleID,
myschema.SALE.SaleDate,
myschema.LastNameFirst(myschema.CUSTOMER.LastName,
myschema.CUSTOMER.FirstName) AS Customer_Name, ...
add a comment |
up vote
1
down vote
up vote
1
down vote
Functions are not properties of tables to be allowed to period qualify them. However, functions and tables among other objects share the same namespace. As mentioned in docs:
The following schema objects share one namespace:
- Tables
- Views
- Sequences
- Private synonyms
- Stand-alone procedures
- Stand-alone stored functions
- Packages
- Materialized views
- User-defined types
Therefore, simply remove the CUSTOMER.
qualifier as schema is implicitly defined:
SELECT SALE.SaleID,
SALE.SaleDate,
LastNameFirst(LastName, FirstName) AS Customer_Name, ...
Alternatively, explicitly qualify the schema name on all table and function objects in the manner: "schema"."table"."column"
or "schema"."function"
:
SELECT myschema.SALE.SaleID,
myschema.SALE.SaleDate,
myschema.LastNameFirst(myschema.CUSTOMER.LastName,
myschema.CUSTOMER.FirstName) AS Customer_Name, ...
Functions are not properties of tables to be allowed to period qualify them. However, functions and tables among other objects share the same namespace. As mentioned in docs:
The following schema objects share one namespace:
- Tables
- Views
- Sequences
- Private synonyms
- Stand-alone procedures
- Stand-alone stored functions
- Packages
- Materialized views
- User-defined types
Therefore, simply remove the CUSTOMER.
qualifier as schema is implicitly defined:
SELECT SALE.SaleID,
SALE.SaleDate,
LastNameFirst(LastName, FirstName) AS Customer_Name, ...
Alternatively, explicitly qualify the schema name on all table and function objects in the manner: "schema"."table"."column"
or "schema"."function"
:
SELECT myschema.SALE.SaleID,
myschema.SALE.SaleDate,
myschema.LastNameFirst(myschema.CUSTOMER.LastName,
myschema.CUSTOMER.FirstName) AS Customer_Name, ...
answered Nov 14 at 3:26
Parfait
48.4k84168
48.4k84168
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53292203%2fusing-a-function-in-a-select-statement-with-multiple-tables-while-creating-a-vie%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown