我在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
但我找不到数据库名称或端口信息.门户网站也没有为此服务器定义任何入站端点.
任何帮助是极大的赞赏.
我有一个 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)
谁能帮我解决这个问题。
我在 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 编译错误。 …
考虑初始表空间声明为
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 的值。但是当我们用扩展数据文件更改表空间时,这会起作用吗?或者在这种情况下有其他方法可以扩展或改变。
我必须修改我的表格,并尝试按以下方式进行:
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 值的值。
在 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中建议的答案,但似乎不起作用。
它收到以下错误。
GRANT All PRIVILEGE TO name 错误报告 - ORA-00922: 缺少或无效选项 00922.00000 -“缺少或无效选项” …
我正在尝试使用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) 我想在 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 版本。
我正在使用 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) 我正在尝试重置主键“冰雹玛丽”样式 - 删除并创建。
但是,之后,它从桌子上消失了all_indexes。
PK 似乎在那里,因为行为是正确的:
脚本:
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) oracle12c ×10
oracle ×8
sql ×4
database ×2
azure ×1
indexing ×1
json ×1
oracle-apex ×1
plsql ×1
primary-key ×1
privileges ×1
regex ×1
sql-merge ×1
substr ×1