标签: oracle12c

如何重命名系统生成的约束名称和主键索引

正如标题所示,我需要重命名一个名为 sys_ 000545 的主键约束,索引名称也具有相同的名称。我怎样才能在oracle pl/sql 中实现这一点?名字是随机的。

我尝试将 alter index 与选择索引名称的子查询一起使用,但 Oracle 不允许这样做。

编辑我需要此重命名作为更新脚本的一部分

sql oracle12c

1
推荐指数
1
解决办法
1471
查看次数

如何使用oracle表函数将json转换为列和行

我有一个表结构如下:

create table json_tab (id number constraint primary key,d_data clob(30000));

insert into json_tab values (1,'[{"a"=0,"b"=1},{"a"=1,"b"=2},{"a"=2,"b"=3}]');
insert into json_tab values (2,'[{"a"=0,"b"=1},{"a"=1,"b"=2},{"a"=2,"b"=3}]');
Run Code Online (Sandbox Code Playgroud)

我想编写一个查询来获取以下格式的记录。

ID A
1 0 1
1 1 2
1 2 3
2 0 1
2 1 2
2 2 3

以上是示例数据。实际数据是 JSON 列超过 30000 字节

sql oracle oracle12c

1
推荐指数
1
解决办法
1万
查看次数

Oracle 12c 一次性解锁所有锁定用户

您好,我想从 Oracle 12C 的 dba_users 中解锁用户列表。

我尝试过:

ALTER USER (SELECT username FROM dba_users WHERE ACCOUNT_STATUS LIKE '%LOCKED%') ACCOUNT UNLOCK;

ERROR at line 1:
ORA-01935: missing user or role name
Run Code Online (Sandbox Code Playgroud)

任何想法 ?或者我必须为每个用户手动执行?

sql oracle oracle12c

1
推荐指数
1
解决办法
4166
查看次数

Oracle SQL Developer:运行脚本,出现错误时继续

我正在使用 SQL Developer 20.2 运行 Oracle 12c 数据库更新的批处理脚本。我将脚本文件拖放到编辑器窗口中,然后单击“运行脚本 (F5)”按钮。由于某种原因,如果脚本遇到错误(DDL 语句 - 没有显式抛出 PL/SQL 函数),程序就会停止。

例子:

drop sequence my_seq;  -- sequence may not exist yet
create sequence my_seq
  start with 1
increment by 1
    minvalue 1
    maxvalue 9999999999
       cache 100
       cycle;
Run Code Online (Sandbox Code Playgroud)

由于序列不存在,该drop语句可能会出错。SQL*Plus 忽略该错误并继续运行脚本,但 SQL Developer 停止执行,导致补丁更新不完整。

我能做些什么?

oracle oracle-sqldeveloper oracle12c

1
推荐指数
1
解决办法
5946
查看次数

Spring JDBC和Oracle DB 12c:java.sql.SQLException:列类型无效.为什么?

我正在努力应对以下异常:

org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [update EVALUATION_SHEET set STATUS=?, LAST_EDITED=? where id=?]; SQL state [99999]; error code [17004]; Invalid column type; nested exception is java.sql.SQLException: Invalid column type
Run Code Online (Sandbox Code Playgroud)

这是扔在这里:

jdbcTemplate.update("update E_SHEET set STATUS=?, LAST_EDITED=? where id=?",
                new Object[]{eSheet.getStatus().ordinal(), eSheet.getLastEditDate(), eSheet.getId()},
                new Object[]{OracleTypes.NUMBER, OracleTypes.TIMESTAMP, OracleTypes.NUMBER});
Run Code Online (Sandbox Code Playgroud)

数据库表创建如下:

create table E_SHEET (
  ID number not null unique,
  ID_POSITION number not null,
  STATUS number default 0 not null,
  ID_EXAMINER number not null,
  LAST_EDITED timestamp not null);
Run Code Online (Sandbox Code Playgroud)

我不知道是什么导致了这个问题.这个方法:

 eSheet.getLastEditDate()
Run Code Online (Sandbox Code Playgroud)

返回java.util.Date对象.我使用Spring JDBC模板和Spring DB以及Oracle DB …

java spring spring-jdbc oracle12c spring-boot

0
推荐指数
1
解决办法
1万
查看次数

'USING'和||之间的区别 在PL SQL中

我只需要在PL/SQL代码中运行一个基本的SELECT查询.以下代码完美无缺:

BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM ' || 'TNAME';
END;
/
Run Code Online (Sandbox Code Playgroud)

但是遵循代码

BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM :1' USING 'TNAME';
END;
/
Run Code Online (Sandbox Code Playgroud)

提出错误说

ORA-00903:表名无效

ORA-06512:第2行

  1. 00000 - "表名无效"

*原因:
*行动:

我不能以任何方式使用"USING"传递表名吗?

oracle plsql oracle-sqldeveloper oracle12c

0
推荐指数
1
解决办法
61
查看次数

替换函数内的错误符号(PL/SQL,ORACLE)

我在包内有以下程序:

PROCEDURE test1
IS
     InsertST varchar2(32000) : = 'INSERT INTO tableA (col1, col2) 
                                   (select cola, 
                                   INITCAP(REPLACE(colX, '_', ''))
                                   from tableB))';
Begin
    execute immediate InsertST;
END
Run Code Online (Sandbox Code Playgroud)

在编译期间我收到错误:

错误(1177,45):PLS-00103:遇到以下其中一项时遇到符号"_":*&= - +; </> at in是mod的余数不是rem <>或!=或〜=> = <= <>和/或类似like2 like4 likec之间的|| 成员submultiset

东西是错误的"_"内部功能:INITCAP(REPLACE(colX, '_', ''))

怎么解决?也许是其他方式?

sql plsql function package oracle12c

0
推荐指数
1
解决办法
77
查看次数

Weblogic 12c数据库连接错误

我刚刚完成了Oracle Fusion Middleware 12c的全新安装.这个附带了新版本的Weblogic 12.2.1.3.0.每当我尝试创建新的JDBC连接时,我都会收到以下错误.

<BEA-240003> <Administration Console encountered the following error: java.sql.SQLException: Could not establish a connection because of java.lang.IllegalArgumentException: ONS configuration failed
            at weblogic.jdbc.common.internal.DataSourceUtil.testConnection0(DataSourceUtil.java:423)
            at weblogic.jdbc.common.internal.DataSourceUtil.access$000(DataSourceUtil.java:24)
            at weblogic.jdbc.common.internal.DataSourceUtil$1.run(DataSourceUtil.java:285)
            at java.security.AccessController.doPrivileged(Native Method)
            at weblogic.jdbc.common.internal.DataSourceUtil.testConnection(DataSourceUtil.java:282)
            at com.bea.console.utils.jdbc.JDBCUtils.testConnection(JDBCUtils.java:937)
            at com.bea.console.actions.jdbc.datasources.creategridlinkdatasource.CreateGridLinkDataSource.testJDBCConnection(CreateGridLinkDataSource.java:615)
            at com.bea.console.actions.jdbc.datasources.creategridlinkdatasource.CreateGridLinkDataSource.testRACConnectionConfiguration(CreateGridLinkDataSource.java:437)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:870)
            at org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)
            at org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)
            at org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)
            at org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:336)
            at org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:52)
            at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access$201(PageFlowRequestProcessor.java:97)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$ActionRunner.execute(PageFlowRequestProcessor.java:2044)
            at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:64)
            at org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptor.wrapAction(ActionInterceptor.java:184)
            at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.invoke(ActionInterceptors.java:50)
            at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:58)
            at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors.wrapAction(ActionInterceptors.java:87)
            at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:2116) …
Run Code Online (Sandbox Code Playgroud)

java jdbc weblogic12c oracle12c

0
推荐指数
1
解决办法
8134
查看次数

Oracle SQL,如何选择*具有不同的列

我想要一个像这样的查询(这不起作用!)

select * from foo where rownum < 10 having distinct bar
Run Code Online (Sandbox Code Playgroud)

含义我想从列栏中的十个随机行中选择具有不同值的所有列.如何在Oracle中执行此操作?

这是一个例子.我有以下数据

| item    | rate |
-------------------
| a       | 50   |
| a       | 12   |
| a       | 26   |
| b       | 12   |
| b       | 15   |
| b       | 45   |
| b       | 10   |
| c       | 5    |
| c       | 15   |
Run Code Online (Sandbox Code Playgroud)

结果将是例如

| item no | rate |
------------------
| a       | 12 | …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle12c

0
推荐指数
1
解决办法
229
查看次数

Oracle FULL OUTER JOIN三个表有两个条件

背景

Oracle DB版本:

SELECT * FROM v$version
WHERE banner LIKE 'Oracle%';
-- OUTPUT
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
Run Code Online (Sandbox Code Playgroud)

目标

我正在尝试使用两个条件外连接三个表,以便缺少值只显示为.请参阅以下详细信息.NULL

下表是抽象,因此请不要尝试改进数据模型本身.

测量

主键= ID

|  ID  |    MEAS_NAME    |
|------|-----------------|
| 1000 | "Measurement 1" |
Run Code Online (Sandbox Code Playgroud)

MEASUREMENT_AREA

主键=(ID,NAME)
外键ID=MEASUREMENT.ID

|  ID  |    NAME   | AREA |
|------|-----------|------|
| 1000 | "Point 1" |   10 |
| 1000 | "Point 2" |   20 …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle12c

0
推荐指数
1
解决办法
1500
查看次数