标签: oracle12c

如何在Microsoft Azure中使用"Oracle Database 12c Standard Edition by Oracle"映像

我在azure实例中创建了一个新的"Oracle Database 12c Standard Edition by Oracle"实例.

我可以使用我在portal.azure.com中创建实例时提供的用户名和密码登录实例.

现在我如何开始使用它作为我的应用程序的数据库服务器.如何在此创建我的第一个数据库?

  • 看起来像是安装了oracle.我做了" sudo su oracle ",我能够切换到oracle用户.

  • Oracle已安装@ /u01/app/oracle/product/12.1.0/dbhome_1

但我找不到数据库名称或端口信息.门户网站也没有为此服务器定义任何入站端点.

任何帮助是极大的赞赏.

database azure oracle12c

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

如何在 Oracle 中使用 , 和 : 分隔符将 CLOB 对象拆分为多个记录

我有一个 CLOB 对象示例,如下所示。我想首先使用分隔符“,”将其拆分,并将其保存在临时表中以备后用。

ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0
Run Code Online (Sandbox Code Playgroud)

我想在每一行中以以下格式保存结果。

Column_Name
__________________________
ABCDEF:PmId12345RmLn1VlId0
ABCDEF:PmId12345RmLn1VlId0
ABCDEF:PmId12345RmLn1VlId0
Run Code Online (Sandbox Code Playgroud)

我尝试使用 REGEXP_SUBSTR 函数

select 
    regexp_substr('ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0,ABCDEF:PmId12345RmLn1VlId0', '[^,]+', 1, 1) Column_Name 
from dual;
Run Code Online (Sandbox Code Playgroud)

上面的查询给了我如下的单条记录

Column_Name
__________________________
ABCDEF:PmId12345RmLn1VlId0
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题。

regex oracle substr oracle12c regexp-substr

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

在 Oracle 12c 的 JSON_VALUE 中使用特殊字符的问题

我在 Oracle 12c 上运行以下代码:

DECLARE
           l_json clob;
           l_var varchar2(90);
BEGIN
           l_json := '{
                      "value>50": {
                        "id": "file",
                        "value": "55",
                        "popup": {
                          "menuitem": [{
                            "value": "New",
                            "onclick": "CreateNewDoc()"
                          },
                          {
                            "value": "Open",
                            "onclick": "OpenDoc()"
                          },
                          {
                            "value": "Close",
                            "onclick": "CloseDoc()"
                          }]
                        }
                      }
                    }';

    SELECT JSON_VALUE(l_json, '$.value>50.value') INTO l_var FROM dual;
    DBMS_OUTPUT.PUT_LINE('var: '||l_var);
END;
Run Code Online (Sandbox Code Playgroud)

运行它时,我收到以下错误:

错误报告 -
ORA-06550:第 17 行,第 47 列:
PL/SQL:ORA-40442:JSON 路径表达式语法错误
ORA-06550:第 17 行,第 1 列:
PL/SQL:忽略 SQL 语句
06550。00000 - “行 % s,列 %s:\n%s"
*原因:通常是 PL/SQL 编译错误。 …

sql oracle json plsql oracle12c

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

如何将数据文件添加到已经满的表空间中?

考虑初始表空间声明为

CREATE TABLESPACE tbs_perm_02
  DATAFILE 'tbs_perm_02.dat' 
    SIZE 10M
    REUSE
    AUTOEXTEND ON NEXT 10M MAXSIZE 200M;
Run Code Online (Sandbox Code Playgroud)

声明的空间已耗尽,我需要添加更多数据文件。

作为

ALTER TABLESPACE tbs_perm_02
ADD DATAFILE 'tbs_perm_02.dat'
  SIZE 20M
  AUTOEXTEND ON;
Run Code Online (Sandbox Code Playgroud)

这里的要点是,表位已经用完其最初声明的 10M 加 200M 的值。但是当我们用扩展数据文件更改表空间时,这会起作用吗?或者在这种情况下有其他方法可以扩展或改变。

oracle oracle12c

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

Oracle 12c - 列检查约束不能引用其他列

我必须修改我的表格,并尝试按以下方式进行:

ALTER TABLE projects
    MODIFY (
        id_proj NUMBER(4) CONSTRAINT pk_proj PRIMARY KEY,
        desc VARCHAR2(40) NOT NULL CONSTRAINT uk_proj UNIQUE,
        end_date CONSTRAINT chk_date CHECK(end_date > start_date),
        fund CHECK (fund > 0)
    );
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此查询时,出现错误:

ORA-02438:列检查约束不能引用其他列
02438。00000 - “列检查约束不能引用其他列”
*原因:试图定义引用另一列的列检查约束。
*Action:将其定义为表检查约束。

此外,我希望该列接受大于 0 或 NULL 值的值。

sql oracle oracle12c

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

在 Oracle 12c 中向用户授予所有权限

在 Ora11g 中,我曾经向用户授予所有权限,如下所示。

create user xx identified by psw;
grant create session, grant any privilege to xx;
grant all privileges to xx;
Run Code Online (Sandbox Code Playgroud)

但在 Ora 12c 中,当我执行授予权限时,出现以下错误。

从命令中的第 2 行开始出错 - 授予创建会话,向 xx 授予任何权限 错误报告 - ORA-00604:递归 SQL 级别 1 发生错误 ORA-20997:“授予任何特权”不允许授予 ORA-06512:在“ RDSADMIN.RDSADMIN”,第 79 行 ORA-06512:第 2 行 00604.00000 - “递归 SQL 级别 %s 发生错误” *原因:处理递归 SQL 语句(应用于内部字典表的语句)时发生错误。*操作:如果堆栈上的下一个错误中描述的情况可以纠正,则执行该操作;否则请联系 Oracle 支持。

我已经尝试过1中建议的答案,但似乎不起作用。

1 . 关于 Oracle 12c 中的用户

它收到以下错误。

GRANT All PRIVILEGE TO name 错误报告 - ORA-00922: 缺少或无效选项 00922.00000 -“缺少或无效选项” …

oracle privileges oracle12c

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

同一表的合并语句不会插入新行,而是更新 Oracle DB 中的现有行

我正在尝试使用MERGEOracle 12 DB 表上的语句执行 upsert 操作CONFIG,该表的架构如下所示:

id | name | value
Run Code Online (Sandbox Code Playgroud)

如果存在带有“NON_TAXABLE_CODE”的行name,请将其更新value为“400”,否则在其中插入新行。

第一次尝试

MERGE into CONFIG dest USING (SELECT id, name, value from CONFIG where name = 'NON_TAXABLE_CODE') src
    ON (dest.name = src.name)
WHEN MATCHED THEN
    UPDATE SET dest.value = src.value
WHEN NOT MATCHED THEN
    INSERT (id, name, value) VALUES (src.id, src.name, src.value )
Run Code Online (Sandbox Code Playgroud)

如果该行存在,这将更新该值,但不会插入新行(如果不存在行)

第二次尝试:

MERGE into CONFIG as dest USING VALUES (0, 'NON_TAXABLE_CODE', '400') as src (id, name, value)
    ON …
Run Code Online (Sandbox Code Playgroud)

sql database oracle sql-merge oracle12c

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

如何创建 APEX_COLLECTION?

我想在 Oracle SQL Developer 中为我的 apex web 应用程序创建一个 apex_collection。这是我的代码:

 apex_collections.create_or_truncate_collection('TEST');
Run Code Online (Sandbox Code Playgroud)

运行语句后,我得到以下信息:

在此处输入图片说明

如果我输入选择语句:

SELECT *
  FROM apex_collections
 WHERE collection_name = 'TEST';
Run Code Online (Sandbox Code Playgroud)

之后,我得到了这个:

在此处输入图片说明

在我看来,没有创建集合,尽管没有错误代码。我究竟做错了什么?为什么没有创建集合?我也尝试在 Oracle APEX 的 SQL Workshop 中运行该语句,但该命令在那里未知。我正在使用 Oracle 12c 版本。

oracle-sqldeveloper oracle-apex oracle12c

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

如何在SQL查询中绑定字符串中的变量?

我正在使用 SQL Developer。当我想绑定值时。通常我使用以下语法:

    SELECT * FROM table WHERE column = :bindvalue
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何在字符串中做到这一点。以下查询不起作用。

    SELECT * FROM table WHERE column like '%:bindvalue%'
Run Code Online (Sandbox Code Playgroud)

为什么我需要它?因为我的程序在 python 中运行一个查询并分配一些东西给绑定变量:

    curr.execute('''SELECT * FROM table WHERE column''' = :bindvalue, bindvalue=somevalue)
Run Code Online (Sandbox Code Playgroud)

sql oracle bind-variables oracle12c

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

为什么在 oracle12c 中删除和创建 PK 会使 PK 从 `all_indexes` 中消失?

我正在尝试重置主键“冰雹玛丽”样式 - 删除并创建。

但是,之后,它从桌子上消失了all_indexes

PK 似乎在那里,因为行为是正确的:

  1. 再次尝试创建时,它说我只能创建一个主键。
  2. 此外,不能插入具有相同 ID 的 2 行 - 违反唯一约束。

脚本:

set echo on;
-- whenever sqlerror exit sql.sqlcode;
set timing on
SET LINESIZE 2000

create table MY_TABLE (
    date_col DATE DEFAULT SYSTIMESTAMP NOT NULL,
    id NUMBER(10) NOT NULL,
    hash NUMBER(19) DEFAULT '0' NOT NULL,
    value1 NUMBER(19) DEFAULT '0' NOT NULL,
    value2 NUMBER(19) DEFAULT '0' NOT NULL,
    CONSTRAINT MY_TABLE_PK PRIMARY KEY (date_col, id, hash)
);
-- Res: Table created.

CREATE INDEX MY_TABLE_I ON MY_TABLE …
Run Code Online (Sandbox Code Playgroud)

oracle indexing primary-key oracle12c

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