Display all object values in PLSQL
I am trying to display all the values in an object but it give me 'must be declared' error.
I tried the code below but still giving me same error.
declare
outN mytype;
begin
outN:= get_data();
dbms_output.put_line(outN.toString);
-- tried this as well
dbms_output.put_line(outN.ID);
dbms_output.put_line(outN.G);
dbms_output.put_line(outN.GES);
dbms_output.put_line(outN.CC);
dbms_output.put_line(outN.RR);
end;
And my object is:
create or replace TYPE "mytype"
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR(100 BYTE),
"CC" NUMBER(10),
"RR" VARCHAR(100 BYTE)
);
Errors:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'ID' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
ORA-06550: line 6, column 38:
PLS-00302: component 'G' must be declared
ORA-06550: line 6, column 7:
PL/SQL: Statement ignored
ORA-06550: line 7, column 38:
PLS-00302: component 'GES' must be declared
ORA-06550: line 7, column 7:
PL/SQL: Statement ignored
ORA-06550: line 8, column 38:
PLS-00302: component 'CC' must be declared
ORA-06550: line 8, column 7:
PL/SQL: Statement ignored
ORA-06550: line 9, column 38:
PLS-00302: component 'RR' must be declared
ORA-06550: line 9, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
Another one:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'TOSTRING' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
get_data
is just a function that return the result of a select statement (returns db rows)
oracle plsql
|
show 2 more comments
I am trying to display all the values in an object but it give me 'must be declared' error.
I tried the code below but still giving me same error.
declare
outN mytype;
begin
outN:= get_data();
dbms_output.put_line(outN.toString);
-- tried this as well
dbms_output.put_line(outN.ID);
dbms_output.put_line(outN.G);
dbms_output.put_line(outN.GES);
dbms_output.put_line(outN.CC);
dbms_output.put_line(outN.RR);
end;
And my object is:
create or replace TYPE "mytype"
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR(100 BYTE),
"CC" NUMBER(10),
"RR" VARCHAR(100 BYTE)
);
Errors:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'ID' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
ORA-06550: line 6, column 38:
PLS-00302: component 'G' must be declared
ORA-06550: line 6, column 7:
PL/SQL: Statement ignored
ORA-06550: line 7, column 38:
PLS-00302: component 'GES' must be declared
ORA-06550: line 7, column 7:
PL/SQL: Statement ignored
ORA-06550: line 8, column 38:
PLS-00302: component 'CC' must be declared
ORA-06550: line 8, column 7:
PL/SQL: Statement ignored
ORA-06550: line 9, column 38:
PLS-00302: component 'RR' must be declared
ORA-06550: line 9, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
Another one:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'TOSTRING' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
get_data
is just a function that return the result of a select statement (returns db rows)
oracle plsql
What istoString
? I don't see an attribute (or method) of typemytype
in its definition. In any case, the first error will be thrown at the name of the type. You declared it as"mytype"
. In Oracle, when you use double-quotes, you are saying that you want case-sensitive identifiers. By default Oracle is not case sensitive; it will automatically convertmytype
in your code block toMYTYPE
, which will not match"mytype"
. Get in the habit of not using double-quoted identifiers, they only bring trouble. The alternative is in the declarations section to use double quotes.
– mathguy
Nov 14 '18 at 1:03
What isget_data()
, also? There is a call to it in your code, but you haven't shown us what it is. ALSO: If you need help, you will have to include the exact error message(s) in your posts. Right now, the typeMYTYPE
is not declared (lower-case"mytype"
is, which is different), but you will likely get more errors - tell us exactly what they are.
– mathguy
Nov 14 '18 at 1:07
edit my question
– SMH
Nov 14 '18 at 1:11
1
I am sorry, but I don't believe you. If you define the type"mytype"
but you reference it without double-quotes, you will not get to the "undeclared components", you will get the errorPLS-00201: identifier 'MYTYPE' must be declared
first.
– mathguy
Nov 14 '18 at 1:45
2
Unless... did you also (perhaps in the past) create a typeMYTYPE
? Which may still exist in your schema (or a schema you have privileges to)? What do you get if youselect * from ALL_TYPES where UPPER(type_name) = 'MYTYPE'
?
– mathguy
Nov 14 '18 at 3:04
|
show 2 more comments
I am trying to display all the values in an object but it give me 'must be declared' error.
I tried the code below but still giving me same error.
declare
outN mytype;
begin
outN:= get_data();
dbms_output.put_line(outN.toString);
-- tried this as well
dbms_output.put_line(outN.ID);
dbms_output.put_line(outN.G);
dbms_output.put_line(outN.GES);
dbms_output.put_line(outN.CC);
dbms_output.put_line(outN.RR);
end;
And my object is:
create or replace TYPE "mytype"
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR(100 BYTE),
"CC" NUMBER(10),
"RR" VARCHAR(100 BYTE)
);
Errors:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'ID' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
ORA-06550: line 6, column 38:
PLS-00302: component 'G' must be declared
ORA-06550: line 6, column 7:
PL/SQL: Statement ignored
ORA-06550: line 7, column 38:
PLS-00302: component 'GES' must be declared
ORA-06550: line 7, column 7:
PL/SQL: Statement ignored
ORA-06550: line 8, column 38:
PLS-00302: component 'CC' must be declared
ORA-06550: line 8, column 7:
PL/SQL: Statement ignored
ORA-06550: line 9, column 38:
PLS-00302: component 'RR' must be declared
ORA-06550: line 9, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
Another one:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'TOSTRING' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
get_data
is just a function that return the result of a select statement (returns db rows)
oracle plsql
I am trying to display all the values in an object but it give me 'must be declared' error.
I tried the code below but still giving me same error.
declare
outN mytype;
begin
outN:= get_data();
dbms_output.put_line(outN.toString);
-- tried this as well
dbms_output.put_line(outN.ID);
dbms_output.put_line(outN.G);
dbms_output.put_line(outN.GES);
dbms_output.put_line(outN.CC);
dbms_output.put_line(outN.RR);
end;
And my object is:
create or replace TYPE "mytype"
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR(100 BYTE),
"CC" NUMBER(10),
"RR" VARCHAR(100 BYTE)
);
Errors:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'ID' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
ORA-06550: line 6, column 38:
PLS-00302: component 'G' must be declared
ORA-06550: line 6, column 7:
PL/SQL: Statement ignored
ORA-06550: line 7, column 38:
PLS-00302: component 'GES' must be declared
ORA-06550: line 7, column 7:
PL/SQL: Statement ignored
ORA-06550: line 8, column 38:
PLS-00302: component 'CC' must be declared
ORA-06550: line 8, column 7:
PL/SQL: Statement ignored
ORA-06550: line 9, column 38:
PLS-00302: component 'RR' must be declared
ORA-06550: line 9, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
Another one:
Error report -
ORA-06550: line 5, column 38:
PLS-00302: component 'TOSTRING' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
get_data
is just a function that return the result of a select statement (returns db rows)
oracle plsql
oracle plsql
edited Nov 14 '18 at 1:11
asked Nov 14 '18 at 0:13
SMH
69611024
69611024
What istoString
? I don't see an attribute (or method) of typemytype
in its definition. In any case, the first error will be thrown at the name of the type. You declared it as"mytype"
. In Oracle, when you use double-quotes, you are saying that you want case-sensitive identifiers. By default Oracle is not case sensitive; it will automatically convertmytype
in your code block toMYTYPE
, which will not match"mytype"
. Get in the habit of not using double-quoted identifiers, they only bring trouble. The alternative is in the declarations section to use double quotes.
– mathguy
Nov 14 '18 at 1:03
What isget_data()
, also? There is a call to it in your code, but you haven't shown us what it is. ALSO: If you need help, you will have to include the exact error message(s) in your posts. Right now, the typeMYTYPE
is not declared (lower-case"mytype"
is, which is different), but you will likely get more errors - tell us exactly what they are.
– mathguy
Nov 14 '18 at 1:07
edit my question
– SMH
Nov 14 '18 at 1:11
1
I am sorry, but I don't believe you. If you define the type"mytype"
but you reference it without double-quotes, you will not get to the "undeclared components", you will get the errorPLS-00201: identifier 'MYTYPE' must be declared
first.
– mathguy
Nov 14 '18 at 1:45
2
Unless... did you also (perhaps in the past) create a typeMYTYPE
? Which may still exist in your schema (or a schema you have privileges to)? What do you get if youselect * from ALL_TYPES where UPPER(type_name) = 'MYTYPE'
?
– mathguy
Nov 14 '18 at 3:04
|
show 2 more comments
What istoString
? I don't see an attribute (or method) of typemytype
in its definition. In any case, the first error will be thrown at the name of the type. You declared it as"mytype"
. In Oracle, when you use double-quotes, you are saying that you want case-sensitive identifiers. By default Oracle is not case sensitive; it will automatically convertmytype
in your code block toMYTYPE
, which will not match"mytype"
. Get in the habit of not using double-quoted identifiers, they only bring trouble. The alternative is in the declarations section to use double quotes.
– mathguy
Nov 14 '18 at 1:03
What isget_data()
, also? There is a call to it in your code, but you haven't shown us what it is. ALSO: If you need help, you will have to include the exact error message(s) in your posts. Right now, the typeMYTYPE
is not declared (lower-case"mytype"
is, which is different), but you will likely get more errors - tell us exactly what they are.
– mathguy
Nov 14 '18 at 1:07
edit my question
– SMH
Nov 14 '18 at 1:11
1
I am sorry, but I don't believe you. If you define the type"mytype"
but you reference it without double-quotes, you will not get to the "undeclared components", you will get the errorPLS-00201: identifier 'MYTYPE' must be declared
first.
– mathguy
Nov 14 '18 at 1:45
2
Unless... did you also (perhaps in the past) create a typeMYTYPE
? Which may still exist in your schema (or a schema you have privileges to)? What do you get if youselect * from ALL_TYPES where UPPER(type_name) = 'MYTYPE'
?
– mathguy
Nov 14 '18 at 3:04
What is
toString
? I don't see an attribute (or method) of type mytype
in its definition. In any case, the first error will be thrown at the name of the type. You declared it as "mytype"
. In Oracle, when you use double-quotes, you are saying that you want case-sensitive identifiers. By default Oracle is not case sensitive; it will automatically convert mytype
in your code block to MYTYPE
, which will not match "mytype"
. Get in the habit of not using double-quoted identifiers, they only bring trouble. The alternative is in the declarations section to use double quotes.– mathguy
Nov 14 '18 at 1:03
What is
toString
? I don't see an attribute (or method) of type mytype
in its definition. In any case, the first error will be thrown at the name of the type. You declared it as "mytype"
. In Oracle, when you use double-quotes, you are saying that you want case-sensitive identifiers. By default Oracle is not case sensitive; it will automatically convert mytype
in your code block to MYTYPE
, which will not match "mytype"
. Get in the habit of not using double-quoted identifiers, they only bring trouble. The alternative is in the declarations section to use double quotes.– mathguy
Nov 14 '18 at 1:03
What is
get_data()
, also? There is a call to it in your code, but you haven't shown us what it is. ALSO: If you need help, you will have to include the exact error message(s) in your posts. Right now, the type MYTYPE
is not declared (lower-case "mytype"
is, which is different), but you will likely get more errors - tell us exactly what they are.– mathguy
Nov 14 '18 at 1:07
What is
get_data()
, also? There is a call to it in your code, but you haven't shown us what it is. ALSO: If you need help, you will have to include the exact error message(s) in your posts. Right now, the type MYTYPE
is not declared (lower-case "mytype"
is, which is different), but you will likely get more errors - tell us exactly what they are.– mathguy
Nov 14 '18 at 1:07
edit my question
– SMH
Nov 14 '18 at 1:11
edit my question
– SMH
Nov 14 '18 at 1:11
1
1
I am sorry, but I don't believe you. If you define the type
"mytype"
but you reference it without double-quotes, you will not get to the "undeclared components", you will get the error PLS-00201: identifier 'MYTYPE' must be declared
first.– mathguy
Nov 14 '18 at 1:45
I am sorry, but I don't believe you. If you define the type
"mytype"
but you reference it without double-quotes, you will not get to the "undeclared components", you will get the error PLS-00201: identifier 'MYTYPE' must be declared
first.– mathguy
Nov 14 '18 at 1:45
2
2
Unless... did you also (perhaps in the past) create a type
MYTYPE
? Which may still exist in your schema (or a schema you have privileges to)? What do you get if you select * from ALL_TYPES where UPPER(type_name) = 'MYTYPE'
?– mathguy
Nov 14 '18 at 3:04
Unless... did you also (perhaps in the past) create a type
MYTYPE
? Which may still exist in your schema (or a schema you have privileges to)? What do you get if you select * from ALL_TYPES where UPPER(type_name) = 'MYTYPE'
?– mathguy
Nov 14 '18 at 3:04
|
show 2 more comments
1 Answer
1
active
oldest
votes
Not sure what get_data()
and toString
are in your code. But, this should explain how object values can be displayed.
create or replace TYPE mytype -- removed double quotes
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR2(100 BYTE), --Use VARCHAR2 instead of VARCHAR
"CC" NUMBER(10),
"RR" VARCHAR2(100 BYTE)
);
/
SET SERVEROUTPUT ON
DECLARE
outn mytype := mytype(1,10,'GES1',20,'RR1'); --declaration and assignment
BEGIN
dbms_output.put_line(outn.id);
dbms_output.put_line(outn.g);
dbms_output.put_line(outn.ges);
dbms_output.put_line(outn.cc);
dbms_output.put_line(outn.rr);
END;
/
Result
Type MYTYPE compiled
1
10
GES1
20
RR1
PL/SQL procedure successfully completed.
thanks @Kaushik, I am not sure why did you remove double quotes? My code is working fine with the double quotes but and returning the data fine with no error but the problem is to display the data of the object.
– SMH
Nov 14 '18 at 21:05
When I run your code I get : Error report - ORA-06550: line 6, column 38: PLS-00302: component 'ID' must be declared ORA-06550: line 6, column 7: PL/SQL: Statement ignored ORA-06550: line 7, column 38: PLS-00302: component 'G' must be declared ORA-06550: line 7, column 7: PL/SQL: Statement ignored ORA-06550: line 8, column 38: PLS-00302: component 'GES' must be declared
– SMH
Nov 14 '18 at 21:06
ORA-06550: line 8, column 7: PL/SQL: Statement ignored ORA-06550: line 9, column 38: PLS-00302: component 'CC' must be declared ORA-06550: line 9, column 7: PL/SQL: Statement ignored ORA-06550: line 10, column 38: PLS-00302: component 'RR' must be declared ORA-06550: line 10, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:n%s" *Cause: Usually a PL/SQL compilation error. *Action:
– SMH
Nov 14 '18 at 21:06
@SMH : your error message indicates the the object has not been declared correctly. As you can see it works for me fine. Either there's something wrong with yourget_data()
function or you aren't showing us everything.
– Kaushik Nayak
Nov 15 '18 at 1:44
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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%2f53291343%2fdisplay-all-object-values-in-plsql%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Not sure what get_data()
and toString
are in your code. But, this should explain how object values can be displayed.
create or replace TYPE mytype -- removed double quotes
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR2(100 BYTE), --Use VARCHAR2 instead of VARCHAR
"CC" NUMBER(10),
"RR" VARCHAR2(100 BYTE)
);
/
SET SERVEROUTPUT ON
DECLARE
outn mytype := mytype(1,10,'GES1',20,'RR1'); --declaration and assignment
BEGIN
dbms_output.put_line(outn.id);
dbms_output.put_line(outn.g);
dbms_output.put_line(outn.ges);
dbms_output.put_line(outn.cc);
dbms_output.put_line(outn.rr);
END;
/
Result
Type MYTYPE compiled
1
10
GES1
20
RR1
PL/SQL procedure successfully completed.
thanks @Kaushik, I am not sure why did you remove double quotes? My code is working fine with the double quotes but and returning the data fine with no error but the problem is to display the data of the object.
– SMH
Nov 14 '18 at 21:05
When I run your code I get : Error report - ORA-06550: line 6, column 38: PLS-00302: component 'ID' must be declared ORA-06550: line 6, column 7: PL/SQL: Statement ignored ORA-06550: line 7, column 38: PLS-00302: component 'G' must be declared ORA-06550: line 7, column 7: PL/SQL: Statement ignored ORA-06550: line 8, column 38: PLS-00302: component 'GES' must be declared
– SMH
Nov 14 '18 at 21:06
ORA-06550: line 8, column 7: PL/SQL: Statement ignored ORA-06550: line 9, column 38: PLS-00302: component 'CC' must be declared ORA-06550: line 9, column 7: PL/SQL: Statement ignored ORA-06550: line 10, column 38: PLS-00302: component 'RR' must be declared ORA-06550: line 10, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:n%s" *Cause: Usually a PL/SQL compilation error. *Action:
– SMH
Nov 14 '18 at 21:06
@SMH : your error message indicates the the object has not been declared correctly. As you can see it works for me fine. Either there's something wrong with yourget_data()
function or you aren't showing us everything.
– Kaushik Nayak
Nov 15 '18 at 1:44
add a comment |
Not sure what get_data()
and toString
are in your code. But, this should explain how object values can be displayed.
create or replace TYPE mytype -- removed double quotes
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR2(100 BYTE), --Use VARCHAR2 instead of VARCHAR
"CC" NUMBER(10),
"RR" VARCHAR2(100 BYTE)
);
/
SET SERVEROUTPUT ON
DECLARE
outn mytype := mytype(1,10,'GES1',20,'RR1'); --declaration and assignment
BEGIN
dbms_output.put_line(outn.id);
dbms_output.put_line(outn.g);
dbms_output.put_line(outn.ges);
dbms_output.put_line(outn.cc);
dbms_output.put_line(outn.rr);
END;
/
Result
Type MYTYPE compiled
1
10
GES1
20
RR1
PL/SQL procedure successfully completed.
thanks @Kaushik, I am not sure why did you remove double quotes? My code is working fine with the double quotes but and returning the data fine with no error but the problem is to display the data of the object.
– SMH
Nov 14 '18 at 21:05
When I run your code I get : Error report - ORA-06550: line 6, column 38: PLS-00302: component 'ID' must be declared ORA-06550: line 6, column 7: PL/SQL: Statement ignored ORA-06550: line 7, column 38: PLS-00302: component 'G' must be declared ORA-06550: line 7, column 7: PL/SQL: Statement ignored ORA-06550: line 8, column 38: PLS-00302: component 'GES' must be declared
– SMH
Nov 14 '18 at 21:06
ORA-06550: line 8, column 7: PL/SQL: Statement ignored ORA-06550: line 9, column 38: PLS-00302: component 'CC' must be declared ORA-06550: line 9, column 7: PL/SQL: Statement ignored ORA-06550: line 10, column 38: PLS-00302: component 'RR' must be declared ORA-06550: line 10, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:n%s" *Cause: Usually a PL/SQL compilation error. *Action:
– SMH
Nov 14 '18 at 21:06
@SMH : your error message indicates the the object has not been declared correctly. As you can see it works for me fine. Either there's something wrong with yourget_data()
function or you aren't showing us everything.
– Kaushik Nayak
Nov 15 '18 at 1:44
add a comment |
Not sure what get_data()
and toString
are in your code. But, this should explain how object values can be displayed.
create or replace TYPE mytype -- removed double quotes
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR2(100 BYTE), --Use VARCHAR2 instead of VARCHAR
"CC" NUMBER(10),
"RR" VARCHAR2(100 BYTE)
);
/
SET SERVEROUTPUT ON
DECLARE
outn mytype := mytype(1,10,'GES1',20,'RR1'); --declaration and assignment
BEGIN
dbms_output.put_line(outn.id);
dbms_output.put_line(outn.g);
dbms_output.put_line(outn.ges);
dbms_output.put_line(outn.cc);
dbms_output.put_line(outn.rr);
END;
/
Result
Type MYTYPE compiled
1
10
GES1
20
RR1
PL/SQL procedure successfully completed.
Not sure what get_data()
and toString
are in your code. But, this should explain how object values can be displayed.
create or replace TYPE mytype -- removed double quotes
AS OBJECT
(
"ID" NUMBER(10),
"G" NUMBER(10),
"GES" VARCHAR2(100 BYTE), --Use VARCHAR2 instead of VARCHAR
"CC" NUMBER(10),
"RR" VARCHAR2(100 BYTE)
);
/
SET SERVEROUTPUT ON
DECLARE
outn mytype := mytype(1,10,'GES1',20,'RR1'); --declaration and assignment
BEGIN
dbms_output.put_line(outn.id);
dbms_output.put_line(outn.g);
dbms_output.put_line(outn.ges);
dbms_output.put_line(outn.cc);
dbms_output.put_line(outn.rr);
END;
/
Result
Type MYTYPE compiled
1
10
GES1
20
RR1
PL/SQL procedure successfully completed.
answered Nov 14 '18 at 3:38
Kaushik Nayak
17.9k41230
17.9k41230
thanks @Kaushik, I am not sure why did you remove double quotes? My code is working fine with the double quotes but and returning the data fine with no error but the problem is to display the data of the object.
– SMH
Nov 14 '18 at 21:05
When I run your code I get : Error report - ORA-06550: line 6, column 38: PLS-00302: component 'ID' must be declared ORA-06550: line 6, column 7: PL/SQL: Statement ignored ORA-06550: line 7, column 38: PLS-00302: component 'G' must be declared ORA-06550: line 7, column 7: PL/SQL: Statement ignored ORA-06550: line 8, column 38: PLS-00302: component 'GES' must be declared
– SMH
Nov 14 '18 at 21:06
ORA-06550: line 8, column 7: PL/SQL: Statement ignored ORA-06550: line 9, column 38: PLS-00302: component 'CC' must be declared ORA-06550: line 9, column 7: PL/SQL: Statement ignored ORA-06550: line 10, column 38: PLS-00302: component 'RR' must be declared ORA-06550: line 10, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:n%s" *Cause: Usually a PL/SQL compilation error. *Action:
– SMH
Nov 14 '18 at 21:06
@SMH : your error message indicates the the object has not been declared correctly. As you can see it works for me fine. Either there's something wrong with yourget_data()
function or you aren't showing us everything.
– Kaushik Nayak
Nov 15 '18 at 1:44
add a comment |
thanks @Kaushik, I am not sure why did you remove double quotes? My code is working fine with the double quotes but and returning the data fine with no error but the problem is to display the data of the object.
– SMH
Nov 14 '18 at 21:05
When I run your code I get : Error report - ORA-06550: line 6, column 38: PLS-00302: component 'ID' must be declared ORA-06550: line 6, column 7: PL/SQL: Statement ignored ORA-06550: line 7, column 38: PLS-00302: component 'G' must be declared ORA-06550: line 7, column 7: PL/SQL: Statement ignored ORA-06550: line 8, column 38: PLS-00302: component 'GES' must be declared
– SMH
Nov 14 '18 at 21:06
ORA-06550: line 8, column 7: PL/SQL: Statement ignored ORA-06550: line 9, column 38: PLS-00302: component 'CC' must be declared ORA-06550: line 9, column 7: PL/SQL: Statement ignored ORA-06550: line 10, column 38: PLS-00302: component 'RR' must be declared ORA-06550: line 10, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:n%s" *Cause: Usually a PL/SQL compilation error. *Action:
– SMH
Nov 14 '18 at 21:06
@SMH : your error message indicates the the object has not been declared correctly. As you can see it works for me fine. Either there's something wrong with yourget_data()
function or you aren't showing us everything.
– Kaushik Nayak
Nov 15 '18 at 1:44
thanks @Kaushik, I am not sure why did you remove double quotes? My code is working fine with the double quotes but and returning the data fine with no error but the problem is to display the data of the object.
– SMH
Nov 14 '18 at 21:05
thanks @Kaushik, I am not sure why did you remove double quotes? My code is working fine with the double quotes but and returning the data fine with no error but the problem is to display the data of the object.
– SMH
Nov 14 '18 at 21:05
When I run your code I get : Error report - ORA-06550: line 6, column 38: PLS-00302: component 'ID' must be declared ORA-06550: line 6, column 7: PL/SQL: Statement ignored ORA-06550: line 7, column 38: PLS-00302: component 'G' must be declared ORA-06550: line 7, column 7: PL/SQL: Statement ignored ORA-06550: line 8, column 38: PLS-00302: component 'GES' must be declared
– SMH
Nov 14 '18 at 21:06
When I run your code I get : Error report - ORA-06550: line 6, column 38: PLS-00302: component 'ID' must be declared ORA-06550: line 6, column 7: PL/SQL: Statement ignored ORA-06550: line 7, column 38: PLS-00302: component 'G' must be declared ORA-06550: line 7, column 7: PL/SQL: Statement ignored ORA-06550: line 8, column 38: PLS-00302: component 'GES' must be declared
– SMH
Nov 14 '18 at 21:06
ORA-06550: line 8, column 7: PL/SQL: Statement ignored ORA-06550: line 9, column 38: PLS-00302: component 'CC' must be declared ORA-06550: line 9, column 7: PL/SQL: Statement ignored ORA-06550: line 10, column 38: PLS-00302: component 'RR' must be declared ORA-06550: line 10, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:n%s" *Cause: Usually a PL/SQL compilation error. *Action:
– SMH
Nov 14 '18 at 21:06
ORA-06550: line 8, column 7: PL/SQL: Statement ignored ORA-06550: line 9, column 38: PLS-00302: component 'CC' must be declared ORA-06550: line 9, column 7: PL/SQL: Statement ignored ORA-06550: line 10, column 38: PLS-00302: component 'RR' must be declared ORA-06550: line 10, column 7: PL/SQL: Statement ignored 06550. 00000 - "line %s, column %s:n%s" *Cause: Usually a PL/SQL compilation error. *Action:
– SMH
Nov 14 '18 at 21:06
@SMH : your error message indicates the the object has not been declared correctly. As you can see it works for me fine. Either there's something wrong with your
get_data()
function or you aren't showing us everything.– Kaushik Nayak
Nov 15 '18 at 1:44
@SMH : your error message indicates the the object has not been declared correctly. As you can see it works for me fine. Either there's something wrong with your
get_data()
function or you aren't showing us everything.– Kaushik Nayak
Nov 15 '18 at 1:44
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%2f53291343%2fdisplay-all-object-values-in-plsql%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
What is
toString
? I don't see an attribute (or method) of typemytype
in its definition. In any case, the first error will be thrown at the name of the type. You declared it as"mytype"
. In Oracle, when you use double-quotes, you are saying that you want case-sensitive identifiers. By default Oracle is not case sensitive; it will automatically convertmytype
in your code block toMYTYPE
, which will not match"mytype"
. Get in the habit of not using double-quoted identifiers, they only bring trouble. The alternative is in the declarations section to use double quotes.– mathguy
Nov 14 '18 at 1:03
What is
get_data()
, also? There is a call to it in your code, but you haven't shown us what it is. ALSO: If you need help, you will have to include the exact error message(s) in your posts. Right now, the typeMYTYPE
is not declared (lower-case"mytype"
is, which is different), but you will likely get more errors - tell us exactly what they are.– mathguy
Nov 14 '18 at 1:07
edit my question
– SMH
Nov 14 '18 at 1:11
1
I am sorry, but I don't believe you. If you define the type
"mytype"
but you reference it without double-quotes, you will not get to the "undeclared components", you will get the errorPLS-00201: identifier 'MYTYPE' must be declared
first.– mathguy
Nov 14 '18 at 1:45
2
Unless... did you also (perhaps in the past) create a type
MYTYPE
? Which may still exist in your schema (or a schema you have privileges to)? What do you get if youselect * from ALL_TYPES where UPPER(type_name) = 'MYTYPE'
?– mathguy
Nov 14 '18 at 3:04