2014-02-20 80 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机器上运行,但没有任何工作) –