मैं अपने SQL कथन में% TYPE विशेषता का उपयोग कर मान डालना चाहता हूं। % TYPE विशेषता आपको टाइप नामों को हार्डकोड करने की बजाय, अपनी घोषणाओं में फ़ील्ड, रिकॉर्ड, नेस्टेड टेबल, डेटाबेस कॉलम या चर के डेटाटाइप का उपयोग करने देती है।% TYPE विशेषता का उपयोग करते हुए ओरेकल कास्ट
यह काम करता है:
insert into t1 select cast(v as varchar2(1)) from t2;
लेकिन मैं चाहते हैं
insert into t1 select cast(v as t1.v%TYPE) from t2;
Error starting at line 16 in command:
insert into t1 select cast(v as t1.v%TYPE) from t2
Error at Command Line:16 Column:37
Error report:
SQL Error: ORA-00911: Ongeldig teken.
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
*Action:
इस (या कुछ इसी तरह) किया जा सकता है के लिए?
संपादित करें: जो मैं प्राप्त करने की कोशिश कर रहा हूं वह है: जब t2.v बड़ा होता है तो मैं इसे छोटा करना चाहता हूं। मैं एक कठोर कोडित क्षेत्र की लंबाई के साथ substr का उपयोग करने से बचने की कोशिश कर रहा हूँ। तो डाली (t1.v% प्रकार के रूप में वी) के बजाय substr (वी, 1,1)
'+ 1',' 10k' तक पहुंचने पर बधाई :) –
@ पीटर लांग - धन्यवाद * 8-) मान लीजिए कि मैं बेहतर होगा और मॉडरेटर टूल्स के बारे में पढ़ूंगा ... –
@Alex यह वही है जो मैं हूं हासिल करने की कोशिश कर रहा है। जब t2.v बड़ा होता है तो मैं इसे छोटा करना चाहता हूं। मैं एक कठोर कोडित क्षेत्र की लंबाई के साथ substr का उपयोग करने से बचने की कोशिश कर रहा हूँ। तो substr (v, 1,1) –