标签: plsqldeveloper

Oracle将秒转换为小时:分钟:秒

我需要以小时为单位显示用户可用时间:分钟:从给定的总秒数值开始的秒数格式.感谢您是否知道ORACLE功能也是如此.我正在使用Oracle.

感谢您的时间.

sql oracle plsql plsqldeveloper

15
推荐指数
3
解决办法
11万
查看次数

PL/SQL开发人员使用oracle 32位/ 64位客户端

我安装了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.

oracleclient plsqldeveloper

13
推荐指数
2
解决办法
8万
查看次数

如何使dbms_metadata.get_ddl更漂亮/有用

我正在创建一个包来生成我的模式中的对象的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)

oracle ddl plsqldeveloper dbms-metadata

13
推荐指数
2
解决办法
5635
查看次数

如何在PL/SQL开发人员的网格输出中设置numwidth?

我正在PL/SQL Developer中运行一些查询,结果中的一列有18位数字.PL/SQL Developer不是在结果网格中显示整个数字,而是仅以科学计数法显示15位数字.

我试图找到一种方法来改变程序的首选项,这样我就可以看到整个数字,就像set numwidth在SQL*Plus中一样.但我的搜索是徒劳的.

如何更改此设置?

sql oracle plsqldeveloper

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

如果在Where子句中声明

我正在使用一个查询,其中包含"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:缺少右括号"

oracle plsql plsqldeveloper

12
推荐指数
2
解决办法
9万
查看次数

如何使用Oracle PL/SQL Developer创建转储?

我需要将用户转储(包括表,程序等)作为FILENAME.dmp.

如果我创建一个新用户并导入它FILENAME.dmp,那么应该创建所有内容.

如何创建此转储文件?

不要打电话给我使用Run > EXPRun > IMP功能,因为由于某些问题,该功能对我不起作用.

oracle plsqldeveloper

10
推荐指数
3
解决办法
11万
查看次数

PL/SQL Developer:多个语句?

我有一个脚本生成一个包含几个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窗口时,它告诉我分号是无效字符.当我删除它时,它告诉我我的第一个声明没有正确终止.

如何在一次执行中运行这些语句?

sql oracle plsqldeveloper

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

Oracle PL Sql Developer找不到我的tnsnames.ora文件

我有一个来自我之前工作场所的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选项卡.

我该如何解决?

tnsnames plsqldeveloper

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

如何在PL/SQL Developer中调试流水线函数?

我在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_ROWSPL/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调试流水线函数?

oracle plsql plsqldeveloper

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

如何在ORA-06502之后将VARCHAR2转换为Oracle 11g PL/SQL中的BLOB

我有一个函数,计算大字符串的哈希值!首先,我写了一个游标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)

plsql blob oracle11g plsqldeveloper

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