如何在Oracle 11g中设计一个表,以便以后与Oracle 12c中新的"时间有效性"功能兼容?
Oracle 12c的联机文档指定了如何在SQL语言指南中定义时间有效性(http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_7002.htm#CJADHJHB)
ALTER TABLE my_table ADD (PERIOD FOR my_valid_time (my_valid_start, my_valid_end) );
Run Code Online (Sandbox Code Playgroud)
因此,可以使用11g中已有的旧的valid_from和valid_till列,并在12c中将它们加强到适当的时间段,对吧?
我继承了使用固定的魔法日期"因为始终"和"永远",例如数据库DATE '1900-01-01'和DATE '3999-12-31'.显然,12c使用了NULL.
那么,我们是否必须放弃使用固定的魔法日期并切换到NULL日期?
我尝试在表上创建一个自动递增的列,正如我在这篇文章中看到的,有两种方法,使用Identity列的第二种实现是一种更优雅的解决方案,但是当我尝试实现它时,出现以下错误:
Error at Command Line : 3 Column : 31
Error report -
SQL Error: ORA-02000: missing ALWAYS keyword
02000. 00000 - "missing %s keyword"
Run Code Online (Sandbox Code Playgroud)
实际的表脚本实现:
CREATE TABLE "PLATFORM"."AUTH_PERMISSION"
(
ID NUMBER(19,0) GENERATED BY DEFAULT ON NULL AS IDENTITY,
-- ID NUMBER(19,0) PRIMARY KEY NOT NULL,
NAME VARCHAR2(50) UNIQUE NOT NULL,
ACTION_ID NUMBER(19,0) NOT NULL,
RESOURCE_ID NUMBER(19,0) NOT NULL,
ENVIRONMENT_ID NUMBER(19,0) NOT NULL,
CONSTRAINT "ACTION_ID" FOREIGN KEY ("ACTION_ID")
REFERENCES "AUTH_ACTION" ("ID") ENABLE,
CONSTRAINT "ENVIRONMENT_ID" FOREIGN KEY ("ENVIRONMENT_ID")
REFERENCES …Run Code Online (Sandbox Code Playgroud) 我正在Visual Studio 2013中开发一个连接到Oracle数据库的应用程序.我必须使用"非托管驱动程序".当我尝试在数据集中创建新连接时,当我选择"托管驱动程序"时,所有工作都正常:找到tnsnames.ora.但当我选择"非托管驱动程序"全部失败时,它会向我发送一条消息,如"找不到默认的tnsnames.ora文件"
我已经 - 卸载了所有旧的Oracle客户端 - 清理所有环境变量 - 重新安装了Oracle客户端,用于Visual Studio的ODP工具
似乎没什么用.有任何想法吗 ?

现在我已经在墙上敲了3天,试图让它发挥作用.
POST /oauth2/v3/token HTTP/1.1
Host: www.googleapis.com
Content-length: 495
Content-type: application/x-www-form-urlencoded
Authorization: Bearer ya29.cgEcY6meBrvaH6oe0nD_PtsFyMVqskiUYi7iJxapKHeEgPoIw8gMt0BJdIvRn1MfcEgzTS3_gTwI1w
grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI5MDgyOTgxNjA1NTktc2R1bGFpbWhsaGpxOTY5M2s1Z2E4c25pZjhh%0D%0ANzhlZ3BAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0%0D%0AdHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvYW5hbHl0aWNzLnJlYWRvbmx5%0D%0AIiwiYXVkIjoiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL3Rv%0D%0Aa2VuIiwiZXhwIjoxNDMxNTE0MDUyLCJpYXQiOjE0MzE1MTEwNTJ9.[Cert]
HTTP/1.1 400 Bad Request
Content-length: 67
X-xss-protection: 1; mode=block
X-content-type-options: nosniff
Expires: Wed, 13 May 2015 10:08:00 GMT
Vary: Origin,X-Origin
Server: GSE
Cache-control: private, max-age=0
Date: Wed, 13 May 2015 10:08:00 GMT
X-frame-options: SAMEORIGIN
Content-type: application/json; charset=UTF-8
{
"error_description": "Bad Request",
"error": "invalid_grant"
}
Run Code Online (Sandbox Code Playgroud)
所以,我在PL/SQL中创建它.Oracle 12c.我已经设法获得JWT标头和JWT Claim设置生成与google文档相同的输出.当我创建证书时,我认为是问题发生.
我需要"[----- BEGIN PRIVATE KEY -----"和----- END PRIVATE KEY ----- \n]作为SHA-256加密的一部分.我应该对"新行"做些什么吗?\n我应该用括号括起来吗?
我应该在什么时候进行URL编码?
以下示例中的代码是否足以用于加密?:http://jastraub.blogspot.co.uk/2009/07/hmacsha256-in-plsql.html
我已经附上了下面的功能,看看你是否可以发现任何问题?
谢谢你的帮助!
FUNCTION get_JWT …Run Code Online (Sandbox Code Playgroud) plsql google-analytics-api google-oauth service-accounts oracle12c
我之前一直在使用ojdbc14.jar,现在想将它升级到ojdbc7.jar以支持oracle12c.
但是,连接服务器时会出现"oracle/security/pki/OraclePKIProvider"的错误.
如果我将oraclepki.jar添加到类路径服务器正常启动而没有任何错误.
我想弄清楚在ojdbc7.jar中添加了哪些特殊内容,它要求我添加oraclepki.jar,与ojdbc14.jar一样,它从未要求我将oraclepki添加到我的类路径中.
有谁知道ojdbc7会导致这个错误的变化,以及可以做些什么来避免在classpath上添加oraclepki?
使用Entity Framework 6 + Code First + Oracle 12c的Visual Studio解决方案存在问题.我不确定它是否配置正确,或者我错过了一些简单的东西.
我试图寻找一个示例项目作为开始,但无法找到 - 谷歌搜索,stackoverflow等.
在某处有一个简约的示例项目,它试图在运行时创建数据库吗?
更新:为了确保,我不是要求任何人为我创建样本.在我做之前,我想确保确实没有现有的样本(这对我来说很奇怪,但很可能就是这种情况).
我在cmd中使用以下内容。
expdp system/*****@11.11.1.11:1521/orcl schemas=HR directory=DATADIR
dumpfile=HR_20150625.dmp logfile=HR_20150625.log version=11.2
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
UDE-00018: Data Pump client is incompatible with database version 11.2.0.1.0
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我有一个表,其中包含一个主键列,该列从应用程序自动递增.如何将列修改为Oracle 12c中的标识列?
以下提供样本案例 -
create table tmp_identity (
id number(100) primary key,
value varchar2(100)
);
Run Code Online (Sandbox Code Playgroud)
假设我们使用以下数据填充表格 -
ID VALUE
---------------
1 Sample 1
2 Sample 2
3 Sample 3
Run Code Online (Sandbox Code Playgroud)
我们计划做的是将这个id专栏改为一个标识栏,该专栏将─
我该怎么做?如果不可能,那么有没有可用的解决办法?
我想回到我(通过python中的cx_oracle)为我正在插入的行创建的Identity的值.我想我可以自己找出python位,如果有人可以请说明如何修改我的SQL语句以获取新创建的行的ID.
我有一个用以下内容创建的表:
CREATE TABLE hypervisor
(
id NUMBER GENERATED BY DEFAULT AS IDENTITY (
START WITH 1 NOCACHE ORDER ) NOT NULL ,
name VARCHAR2 (50)
)
LOGGING ;
ALTER TABLE hypervisor ADD CONSTRAINT hypervisor_PK PRIMARY KEY ( id ) ;
Run Code Online (Sandbox Code Playgroud)
我有类似于以下内容的SQL:
insert into hypervisor ( name ) values ('my hypervisor')
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来获得id新插入的行?如果可能的话,我很乐意修改我的SQL语句以使其返回.
关于此问题的大多数谷歌点击是针对版本11及更低版本,它不支持自动生成的标识列,所以希望有人可以提供帮助.
我目前正在参加在线Oracle Academy数据库设计课程,该课程简要介绍了不可转让关系的概念.我理解他们背后的概念,但课程的模糊细节给我留下了一些问题.
在与1:1或M:M关系相关的实体之间是否存在不可转移的关系?Oracle提供的所有示例都描述了1:M关系.
用于表示不可转让关系的钻石是否可以在关系的任何一端绘制,无论它们是可选的还是强制性的?我相信他们只能出现在关系的强制性结束,但我想确定.
同样,用于表示不可转让关系的钻石是否可能出现在关系的两端?