代码之家  ›  专栏  ›  技术社区  ›  Rene

如何使用SQL/PLSQL检查有效的Oracle表名

  •  3
  • Rene  · 技术社区  · 15 年前

    我需要使用SQL/PLSQL检查字符串是否包含有效的Oracle表名。我为Oracle表名找到的条件如下:

    1. 表名必须以字母开头。
    2. 表名不能超过30个字符。
    3. 表名必须由字母数字字符或以下特殊字符组成:$和。
    4. 表名不能是保留字。

    标准1、2、3似乎不难解决。但是第四点呢?如果不尝试实际创建具有给定名称的表,然后查看它是成功还是失败,那么我的选项是什么?

    4 回复  |  直到 15 年前
        1
  •  7
  •   Jim Hudson    15 年前

    Oracle有一个内置的,用于检查SQL名称是否有效。这在构建需要防止SQL注入的动态查询时尤其有用。

    退房 dbms_assert.simple_sql_名称 内置,见Oracle白皮书 How to Write Injection Proof PL/SQL 了解更多详细信息。

    正如其他人所指出的,V$保留字也很有用。

        2
  •  5
  •   Ian Carpenter    15 年前

    对于SQL保留字,您可以检查v$保留字。这里 link 从文档中

        3
  •  0
  •   cagcowboy    15 年前

    我有一个SQL保留字表,可以用来检查。

    编辑:

    (我撒谎…这只是《Carpenteri's Post》中桌子的同义词)

        4
  •  0
  •   Gren    15 年前

    它相当大 list 检查。您能简单地为表添加一个默认前缀并避免这些问题吗?用户名XXX