2014-02-20 140 views
3

我想添加多行表/列註釋。Oracle SQL添加多行表註釋或列註釋

通常這是使用;

COMMENT ON TABLE USERS IS 'User table has the user data' 

我需要的是一種方法來插入單引號內的新行;

COMMENT ON TABLE USERS IS 'User table has the user data <smthg_here_for_new_line> 1- Name column has name <smthg_here_for_new_line> 2- Number Column has the id' 

因此,表中的評論將被視爲像;

User table has the user data 
1- Name column has name 
2- Number Column has the id 

任何人都知道如何添加多行表/列註釋?

回答

3

您可以簡單地把線您的評論申報單引號內的飼料,例如:

COMMENT ON COLUMN MYTABLE.MYCOLUMN 
IS 
'Line 1 
Line 2. 
Line 3'; 

但是,請注意,在SQL Developer(也可能是其他工具)中,不會顯示總是按預期顯示。用下面的查詢......

SELECT * 
FROM USER_COL_COMMENTS 
WHERE 
    TABLE_NAME = 'MYTABLE' 
    AND COMMENTS IS NOT NULL; 

...你會得到你在腳本的輸出在尋找什麼(即,高亮顯示查詢,右鍵單擊,選擇「運行腳本」):

TABLE_NAME COLUMN_NAME COMMENTS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
---------- ----------- -------------- 
MYTABLE MYCOLUMN Line 1 
         Line 2 
         Line 3 
MYTABLE OTHERCOLUMN Other comments 

但在查詢結果(即,高亮顯示查詢,右鍵單擊,選擇「運行報表」),或打開表來看,在列選項卡時,全註釋將一起上運行單線。

注:這些評論可以查詢的表是:

  • 評論上表:USER_TAB_COMMENTS
  • 評論的欄目:USER_COL_COMMENTS
0

在sqlplus可以使用與CHR(10)CONCAT(或在Microsoft Windows環境CHR(13)|| CHR(10)):

'User table has the user data' || chr(10) || '1- Name column has name...' 

而且,應該有可能只是解釋換行符通過SQLBLANKLINES設置爲ON:

SET SQLBLANKLINES ON 
COMMENT ON TABLE USERS IS 'User table has the user data 
1- Name column has name 
2- Number Column has the id' 
+0

我試過了,並得到下面的錯誤。我將它作爲單個SQL語句在TOAD上運行,錯誤如下所示; COMMENT ON TABLE USER IS'User table comment1 here'|| chr(10)|| '這裏1 - 用戶表subcomment' 在行 錯誤1 ORA-00933:SQL命令不能正確地結束 –

+0

而且,無論是CHR(10),也不CHR(13)工作(一開始我嘗試CHR(10),因爲Oracle服務器在* nix機器上,然後我嘗試了chr(13),因爲我通過TOAD軟件嘗試它,該軟件在Windows機器上運行,但沒有任何工作) –