好的,我们的基本想法是在SQL之上构建一种语言。主要目标是让我们预处理包含SQL的字符串与不同的东西混合,解析我们的“发明”语言,在另一端生成SQL并最终执行该SQL字符串。
这将类似于ASP / PHP对HTML的处理(我知道这在语义上是不正确的,我只是在寻找语法部分)
我们已经有了一个像魅力一样工作的解析器,但随着查询越来越长,我们继续在“语言”中添加新功能,如果我使用Notepad ++正确地突出我的语法,我会很高兴
代码示例:
WHERE PARENT_ID = {GETVAR|PARENT_ID**'}
这基本上做的是获取名为PARENT_ID的变量,并将其填充在由两个'包围的那个地方。它看起来像
WHERE PARENT_ID = 'a parent'
我一直在努力的是单引号,它是无法匹配的,并且不应该被识别为SQL字符串,因为它在我们的litle“函数”中。如果在{和}内部,如何正确地告诉notepad ++避免使用这样的单引号?
非常感谢。
答案 0 :(得分:1)
您可以从PL-SQL示例开始并添加扩展程序来创建用户定义的语言。它没有内部解析器那么强大,但它可以让你:
'
添加为新关键字,例如*
添加到运营商{}
,允许运算符及其中的新关键字。这将排除'...'
分隔符并允许'
关键字,这是您的意图。
注意关键字需要分开,'
只有*
是运算符(因此作为分隔符)才能成为关键字。此外,您可能需要撰写\'
而不仅仅是'
。