2013-01-08 43 views
1

我使用這下面的部分在我的存儲過程,並引發錯誤: - 錯誤報告:與空間別名列名拋出錯誤

ORA-00923: FROM keyword not found where expected 

問題是其中包含該行我有空格的列名在bold.It強調與字符串連接

//Evt_label has varchar values with spaces eg. Stack OverFlow 

select TYT_LIBELLE into evt_label from trb_type_trv where tyt_id= x.tyt_id;  

***sql_Columns := sql_Columns ||',T_"'|| evt_label||'"Total'||vTytCnt;*** 

//Error Comes when i execute this line 

select sql_Columns from table1; 
+0

是什麼錯誤? – Viru

+1

如果單個問題是列名中的空格,解決方案很簡單:將它們放在雙引號中:「堆棧溢出」。 –

+0

@Florin Ghinta,如何在下一條語句中使用雙引號,sql_Columns:= sql_Columns ||',T _「'|| evt_label ||'」Total'|| vTytCnt; – F11

回答

0

你應該使用雙引號整列名,但我不知道是否有一列或兩個

sql_Columns ||',"T_'|| evt_label||'Total'||vTytCnt||'" 

sql_Columns ||',"T_'|| evt_label||'","Total'||vTytCnt||'"' 
+0

感謝隊友,它工作 – F11

2

你必須如下使用EXECUTE IMMEDIATE

//Evt_label has varchar values with spaces eg. Stack OverFlow 

select TYT_LIBELLE into evt_label from trb_type_trv where tyt_id= x.tyt_id;  

sql_comm := 'select '||sql_Columns ||',T_"'|| evt_label||'"Total'||vTytCnt||' from table1'; 

//Error Comes when i execute this line 

EXECUTE IMMEDIATE sql_comm; 
+0

問題不在執行中,它在下面的行中引用:-sql_comm:='select'|| sql_Columns ||',T _「'|| evt_label ||'」Total'|| vTytCnt ||'來自table1'; – F11