如果我在pl/sql开发人员中对数据库表执行一个简单的select语句,我会得到一组标准的结果,如我所料.
最近,我从一个恰好从视图中选择的存储过程粘贴了一个查询,并注意到一个事务似乎保持打开状态.PL/SQL开发人员可以使用回滚和提交选项.
对其他开发人员的调查显示,这似乎影响了一些但不影响其他人,这导致我怀疑PL/SQL Developer设置.
为什么会这样呢?视图itelf有一个DBLink到另一个数据库,但我不希望这会产生任何影响.
有什么想法吗?
我目前尝试在Oracle DB上执行以下查询
select tzname || ' (UTC'|| tz_offset(tzname) || ')' from v$timezone_names
它似乎并不复杂.只是timzone的名称和大括号中的UTC偏移量.但是当我在Windows上使用PL/SQL Developer执行查询时,它总是会吃掉最后一个大括号.
所以我去了sqlplus并在那里执行了,现在我得到了我的最后一个大括号,但在最后一个大括号之前还有一个额外的空格作为额外的好东西.
我和嵌套尝试过to_char()和trim(),但没有改变.我也尝试过不同的DB,但它总是一样的.
有人知道是否存在tz_offset字符串连接问题?
如何在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
每个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 …我查看了一些PL/SQL代码,我在脚本中遇到了以下内容:
/
SHOW error
grant execute on someName1 to someName2;
/
SHOW error
查看PL/SQL的文档我无法找到/解释的内容.
任何人都可以开导我吗?
是否有一些标记或命令会在plsqldeveloper中折叠我的代码区域; 在netBeans for java中,我使用:
<editor-fold desc="description" default-state="collapsed">
如果我的记忆在c#中是正确的:
#region;
我在SQL索引创建中犯了一个可怕的错误:
create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID)
  tablespace IDX_TABLESPACE LOCAL ;
正如您所看到的,我错过了关键字"ONLINE"来创建索引而不会阻止具有600m +记录的高使用率的PRODUCTION表.更正的SQL是:
create index IDX_DATA_TABLE_CUSECO on DATA_TABLE (CUSTOMER_ID, SESSION_ID, CONTACT_ID)
  tablespace IDX_TABLESPACE LOCAL ONLINE;
我是在PL/SQL Developer下完成的.当我试图阻止程序停止响应并崩溃.
生产系统现在不工作9个小时,我的老板想要爆炸.:d
有没有机会看到Oracle 11g离开多少秒/分钟/小时来处理这个索引创建?或者也许有机会看到Oracle仍在处理此请求吗?(PL/SQL Developer崩溃).
仇恨者:我知道我应该像这里提到的那样:( 来源)
CREATE INDEX cust_idx on customer(id) UNUSABLE LOCAL;
ALTER INDEX cust_idx REBUILD parallel 6 NOLOGGING ONLINE;
我有这个关联数组3-d
type v_arr_class is table of varchar2(255) index by varchar2(255);
type v_arr_component is table of v_arr_class index by varchar2(255);
type v_arr_property is table of v_arr_component index by varchar2(255);
v_arr_local_rec v_arr_property;
我需要验证索引是否存在
if(v_arr_local_rec('class')('component')('property') exist) then
do this... 
end if
没有太多关于找到的关联数组的信息.
提前致谢.
如何从 all_views 获取各个视图的总记录数。请找到以下代码以供参考..
Declare
view_name     VARCHAR2(200);
v_str          VARCHAR2 (1000);
v_output     VARCHAR2(4000);
CURSOR tbl IS
     SELECT view_name 
     FROM all_views
     WHERE OWNER = SYS_CONTEXT( 'USERENV', 'CURRENT_SCHEMA')
     ORDER BY 1 ;
BEGIN
OPEN tbl ;
     LOOP
     FETCH tbl INTO view_name;
     EXIT WHEN tbl%NOTFOUND;
          v_str := 'Select '''|| view_name ||'     '' || count (*) from ' || view_name ;
          EXECUTE IMMEDIATE v_str INTO v_output;
          DBMS_OUTPUT.PUT_LINE(v_output);
     END LOOP;
CLOSE tbl;
END;
电流输出:
V_DSP_BUSINESS_DATE            10
V_DSP_DEPARTMENT               20
V_DSP_EMPLOYEE_DEACTIVATED     50
V_DSP_EMPLOYEE_GED             80
预期输出:
sum up the record …Declare
var_cnt       number(3):=0;
begin
    loop
        update t_loan_dtl set loan_closure = 'Y' where rownum <10001;
    end loop;
end;