Java 获取序列名(Oracle)?

Java 获取序列名(Oracle)?,java,database,oracle,sequence,Java,Database,Oracle,Sequence,我没有权限查看数据库,但我有能力创建数据库对象(通过xml文件)。xml文档说,如果我将一个名为“identity”的属性设置为true,那么将创建一个序列。我是否可以编写返回序列名称的逻辑,以便在编写INSERT语句时使用nextVal 罗伯特 下面是,查找单词“identity”…如果可以运行select语句,则可以尝试从用户序列中选择*以获取序列名称。否则,如果此数据库创建实用程序是公共的,请发送您正在使用的该实用程序的文档。否则,这个问题很难回答 编辑: 在审阅文档后,它说如果您创建了一

我没有权限查看数据库,但我有能力创建数据库对象(通过xml文件)。xml文档说,如果我将一个名为“identity”的属性设置为true,那么将创建一个序列。我是否可以编写返回序列名称的逻辑,以便在编写INSERT语句时使用nextVal

罗伯特


下面是,查找单词“identity”…

如果可以运行select语句,则可以尝试从用户序列中选择*以获取序列名称。否则,如果此数据库创建实用程序是公共的,请发送您正在使用的该实用程序的文档。否则,这个问题很难回答

编辑:

在审阅文档后,它说如果您创建了一个带有主键的表,它将创建一个序列,其中包含以下规则,这些规则直接引用自文档:

主键必须包含一个columnref子元素,该子元素包含引用要包含在主键中的列名的单个属性name。在SQL Server中,密钥映射为具有自动递增值的标识字段。在Oracle上,会自动创建一个带有表名加_seq后缀的序列

因此,您的查询将是:


从所有_序列中选择*,其中序列_name=upper(tablename | |'_SEQ')

如果可以运行select语句,则可以尝试从user_序列中选择*以获取序列的名称。否则,如果此数据库创建实用程序是公共的,请发送您正在使用的该实用程序的文档。否则,这个问题很难回答

编辑:

在审阅文档后,它说如果您创建了一个带有主键的表,它将创建一个序列,其中包含以下规则,这些规则直接引用自文档:

主键必须包含一个columnref子元素,该子元素包含引用要包含在主键中的列名的单个属性name。在SQL Server中,密钥映射为具有自动递增值的标识字段。在Oracle上,会自动创建一个带有表名加_seq后缀的序列

因此,您的查询将是:


从所有_序列中选择*,其中序列_name=upper(tablename | |'_SEQ')

+1这也正是我们所写的。从user_sequences表中选择。请确保您已被授予访问Oracle数据字典的权限。我仍然认为,最重要的是,我们知道他在这里使用的实用程序是什么,如果它以某种形式或形式公开提供,或者至少文档可用。默认情况下,oracle用户被授予访问用户视图的权限。sqldeveloper是免费的,它会冻结很多,但如果您无法访问许可证来获取更好的内容,这就有点必要了。链接这里:+1这也正是我们所写的。从user_sequences表中选择。请确保您已被授予访问Oracle数据字典的权限。我仍然认为,最重要的是,我们知道他在这里使用的实用程序是什么,如果它以某种形式或形式公开提供,或者至少文档可用。默认情况下,oracle用户被授予访问用户视图的权限。sqldeveloper是免费的,它会冻结很多,但如果您无法访问许可证来获取更好的内容,这就有点必要了。这里的链接:我将在这里添加,如果您要为这个黑板应用程序进行开发,就像您将要做的那样,您可能希望直接请求访问数据库。如果您可以看到blackboard的配置,并且可以下载sqldeveloper,尝试使用blackboard连接参数,那么您可能可以直接登录到数据库,以便更容易调试此类问题。如果您要开发此blackboard应用程序,我将在这里添加,正如您将要做的那样,您可能希望直接请求访问数据库。如果您可以看到blackboard的配置,并且可以下载sqldeveloper,尝试使用blackboard连接参数,那么您可能可以直接登录到数据库,以便更容易地调试此类问题。