我需要以小时为单位显示用户可用时间:分钟:从给定的总秒数值开始的秒数格式.感谢您是否知道ORACLE功能也是如此.我正在使用Oracle.
感谢您的时间.
我安装了Oracle 64位客户端以与我的weblogic应用程序一起运行.我了解到pl-sql开发人员无法使用oracle 64位客户端,所以现在我的机器上安装了32位和64位客户端,而我的ORACLE_HOME变量指向64位客户端.
即使我在pl-sql开发人员版本8.0.4的Tools-> Preferences中指定了32位客户端,我也无法启动pl/sql developer.
我将我的oracle客户端更改为32位客户端然后我能够启动pl-sql开发人员,但我的应用程序不起作用.
有没有办法在将ORACLE_HOME指向64位oracle客户端的同时运行PL/SQL开发人员.我不确定在工具 - >首选项中明确指定ORACLE_HOME pl sql开发人员(对于用户/默认以及系统首选项)有任何影响,因为它从我相信的环境变量中选择了oracle home.
谢谢,Adithya.
我正在创建一个包来生成我的模式中的对象的DDL(您解析对象名称,并返回一个clobDDL),所以我可以生成文件,并将它们直接放入SVN.
我正在使用dbms_metadata.get_ddl它,它适用于除表/物化视图之外的所有对象.
如果我创建一个表:
create table stackoverflow
( col_1 varchar2(64)
, col_2 number
, col_3 date);
create index idx_test on stackoverflow(col_1);
alter table stackoverflow add constraint ui_test unique (col_2) using index;
Run Code Online (Sandbox Code Playgroud)
并生成DDL:
begin
dbms_output.put_line(dbms_metadata.get_ddl( object_type => 'TABLE'
, name => 'STACKOVERFLOW')
);
end;
Run Code Online (Sandbox Code Playgroud)
它给了我们:
CREATE TABLE "TEST_SCHEMA"."STACKOVERFLOW"
( "COL_1" VARCHAR2(64),
"COL_2" NUMBER,
"COL_3" DATE,
CONSTRAINT "UI_TEST" UNIQUE ("COL_2")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE …Run Code Online (Sandbox Code Playgroud) 我正在PL/SQL Developer中运行一些查询,结果中的一列有18位数字.PL/SQL Developer不是在结果网格中显示整个数字,而是仅以科学计数法显示15位数字.
我试图找到一种方法来改变程序的首选项,这样我就可以看到整个数字,就像set numwidth在SQL*Plus中一样.但我的搜索是徒劳的.
如何更改此设置?
我正在使用一个查询,其中包含"WHERE"子句中的"IF"语句.但PL\SQL Developer在执行时会出现一些错误.任何人都可以帮我正确的查询?这是查询:
SELECT t.first_name,
t.last_name,
t.employid,
t.status
FROM employeetable t
WHERE IF status_flag = STATUS_ACTIVE then t.status = 'A'
IF status_flag = STATUS_INACTIVE then t.status = 'T'
IF source_flag = SOURCE_FUNCTION then t.business_unit = 'production'
IF source_flag = SOURCE_USER then t.business_unit = 'users'
AND t.first_name LIKE firstname
AND t.last_name LIKE lastname
AND t.employid LIKE employeeid;
Run Code Online (Sandbox Code Playgroud)
我收到错误"ORA-00920:无效的关系运算符".
放置括号会status_flag = STATUS_ACTIVE导致错误"ORA-00907:缺少右括号"
我需要将用户转储(包括表,程序等)作为FILENAME.dmp.
如果我创建一个新用户并导入它FILENAME.dmp,那么应该创建所有内容.
如何创建此转储文件?
不要打电话给我使用Run > EXP或Run > IMP功能,因为由于某些问题,该功能对我不起作用.
我有一个脚本生成一个包含几个SQL UPDATE语句的文本文件:
UPDATE TableX SET Field1 = 'New value 1' WHERE Field2='1';
UPDATE TableX SET Field1 = 'New value 2' WHERE Field2='2';
UPDATE TableX SET Field1 = 'New value 3' WHERE Field2='3';
etc.
Run Code Online (Sandbox Code Playgroud)
当我将上面的文本块粘贴到PL/SQL Developer中的SQL窗口时,它告诉我分号是无效字符.当我删除它时,它告诉我我的第一个声明没有正确终止.
如何在一次执行中运行这些语句?
我有一个来自我之前工作场所的Oracle tnsnames.ora文件.我想在另一台计算机上使用我新安装的PL SQL Developer来解决它.我已将文件复制到..ORACLE/product/11.2.0/client_32/NETWORK/ADMIN中,但PL SQL Developer找不到它.
它启动时没有向我显示任何数据库选择.在About-> i-> TNSNames中,我看不到任何行
我在Tools-> Preferences-> Database - > ...中找到了许多建议,但我的首选项中没有Database选项卡.
我该如何解决?
我在oracle数据库中有一个PL/SQL包,它包含一个名为FN_GET_USERINFO_ROWS的流水线函数,如下所示:
CREATE OR REPLACE PACKAGE PKG_USERINFO AS
TYPE TY_USERINFO_RECORD IS RECORD( U_ID VARCHAR2(50),
U_NAME VARCHAR2(50),
DOB DATE);
TYPE TY_USERINFO_TABLE IS TABLE OF TY_USERINFO_RECORD;
FUNCTION FN_GET_USERINFO_ROWS(P_USER_ID IN NUMBER)
RETURN TY_USERINFO_TABLE PIPELINED;
END PKG_USERINFO;
Run Code Online (Sandbox Code Playgroud)
而我正在下面的测试脚本,测试流水线FN_GET_USERINFO_ROWS在PL/SQL开发人员(文件- >新建- >测试窗口)
declare
result PKG_USERINFO.TY_USERINFO_TABLE;
begin
-- calling pipelined function
result := PKG_USERINFO.FN_GET_USERINFO_ROWS(P_USER_ID => :P_USER_ID);
end;
Run Code Online (Sandbox Code Playgroud)
但它显示以下错误:
ORA-06550:第28行,第12列:PLS-00653:PL/SQL范围内不允许使用聚合/表函数
如何使用PL/SQL Developer调试流水线函数?
我有一个函数,计算大字符串的哈希值!首先,我写了一个游标T1_CUT,它可以包含SELECT语句的变量计数,如:
SELECT T1.COL1||T1.COL2||...||T1.COLn FROM T1 WHERE id=documentid
SELECT T2.COL1||T2.COL2||...||T2.COLn FROM T2 WHERE id=documentid
...
SELECT Tn.COL1||Tn.COL2||...||Tn.COLn FROM Tn WHERE id=documentid
Run Code Online (Sandbox Code Playgroud)
每个SELECT都可以包含一行或多行.因此,我将每个SELECT和ALL SELECTs值中的所有值连接在一个大字符串V_RESULT中,类型为VARCHAR2(32767).之后,我使用MD5得到这个大字符串的哈希值(S_HASH_RESULT).它工作正常约8个月,但几天前我有ORA-06502(毫不奇怪).这意味着,我的最后一个大字符串有超过32K符号(我们使用1字节字符集--CL8MSWIN1251).
朋友们,我怎样才能重写我的函数,将BLOB数据类型用于V_RESULT变量,而不是VARCHAR2(32767).
下面是我的功能文字:
FUNCTION CALC_HASH (P_PARTAB_ID IN NUMBER, P_DOC_ID IN NUMBER)
RETURN VARCHAR2
IS
S_HASH_RESULT VARCHAR2(1000);
V_RESULT VARCHAR2(32767);
CURSOR T1_CUT IS
...
/*BIG COMPLAIN SELECT*/
...
T1 T1_CUT%ROWTYPE;
TYPE VALUES_T IS TABLE OF VARCHAR2(32767);
L_VALUES VALUES_T;
BEGIN
OPEN T1_CUT;
FETCH T1_CUT INTO T1;
WHILE T1_CUT%FOUND
LOOP
EXECUTE IMMEDIATE
T1.TEXT
BULK COLLECT INTO L_VALUES;
FOR INDX IN 1 .. L_VALUES.COUNT …Run Code Online (Sandbox Code Playgroud) plsqldeveloper ×10
oracle ×7
plsql ×4
sql ×3
blob ×1
ddl ×1
oracle11g ×1
oracleclient ×1
tnsnames ×1