sql – 转义SELECT语句以在列中存储a

我需要在列中存储select语句.

像这样的东西:

INSERT INTO SOME_TAB(THE_KEY, THE_SELECT)
VALUES (1, 'SELECT COUNT(*) FROM ANOTHER_TAB')

当选择很简单时,它很容易,但是当选择变得更复杂时,保持选择和格式的正确转义变得很麻烦.

例如,如果看起来像这样,则更容易读取SELECT:

SELECT COUNT(*) 
  FROM ANOTHER_TAB

但这要求我在引用的文本中加入换行符.

对于另一个问题,逃避像’STATUS =”ON”’这样的引号是很痛苦的.
我想编写一个引用代码.

另一个问题是,一旦我将select放入引号,我就会失去语法高亮.

是否有某种存储过程有助于格式化?

我在想它看起来像这样:

INSERT INTO SOME_TAB(THE_KEY, THE_SELECT)
VALUES (1, 
QUOTETHIS(SELECT COUNT(*) 
            FROM ANOTHER_TAB 
           WHERE STATUS = 'ON'
         ))

也就是说,QUOTETHIS将所有内容放在parens和引用之间.这很像Perl的qw()功能.

另一个想法是做这样的事情:

INSERT INTO SOME_TAB(THE_KEY, THE_SELECT)
VALUES (1, READFILEASSTRING('FILE_CONTAINS_SELECT.sql'))

然后我可以维护一堆包含选择的单个文件,然后语法高亮可以工作.

最佳答案 这可能不太理想,但为什么不为转义字符(‘)使用不同的字符,例如:|然后您需要做的就是使用REPLACE方法替换|带有转义字符的字符.

Click here for code

点赞