Tag: oracle

有什么比制作850+ UPDATE语句更好的方法吗?

我在Excel VBA中创build了一些东西,我需要从Excel表格中读取850行或更多的行,并在Oracle 11g中的现有表中更新它们。 幸运的是,只有2列对我感兴趣。 唯一的方法,我目前正在做的事情只是循环通过在Excel中的范围,并创build一个单一的UPDATE myTable SET Temp = Array(i, 2) WHERE id = Array(i,1)为数组中的每个字段。 现在…我很清楚,这不是更快,也不优雅,这就是为什么我正在寻找提示和技巧来优化这样的事情。 我非常感谢提供的每一个提示。 === UPDATE === 在通过制作临时表来testingKacpers的build议后,结果是在使用Excel列表时,如果我对2列(约850行)感兴趣,则需要大约2分钟的时间才能读取数据,并使用INSERT ALL方法将其写入表中插入。 另一个表格和excel文件大约有970行和3列,而过滤掉了我写了大约700行,大约一分钟就完成了。 最后一部分是结合现有的表格,而这个实施之前的过程需要大约35秒,现在需要45-55秒。 这仍然是一个非常缓慢的方法。 特别是插入部分。 就像我在评论中所说的,我没有访问服务器存储系统的权限,所以上传或制作CSV导入数据不是一种select。 仍然非常感谢任何提示或提示我可以用来优化程序。

Java POI – 将行插入为列

我基本上从我的数据库中获取行,并将其粘贴到我的Excel文件中作为行。 这很容易,因为没有任何数据转换。 这是我的代码(最重要的部分): XSSFSheet chart1_sheet = wb.createSheet("Chart1"); String strss_chart[] = {"dataa", "inn", "closed", "application"}; hed_row = chart1_sheet.createRow(0); for_each_header(hed_row, strss_chart); sql = "select dataa, inn, closed, application from Chart1"; statement = conn.prepareStatement(sql); resultSet = statement.executeQuery(); row = 1; while(resultSet.next()) { Row dataRow = chart1_sheet.createRow(row); for_each_row_func(dataRow, resultSet, strss_chart); row = row + 1; } 而我的两个function: public static […]

使用SQL过滤来自查询的数据

我真的遇到了我正在使用的这个SQL代码的问题。 我一直在这个,但没有真正得到答案。 我试图使这个代码适应我正在尝试做的事情,但我不断得到下面抓取的错误消息屏幕的屏幕截图。 SELECT LoginID, ShiftNumber, PalletQTY, Group, ShiftDate FROM Database COUNT(PalletQTY) AS TotalCount SUM(IF(Group='PUT',1,0)) AS ActiveCount, ROUND((SUM(IF(TALLY_TRAN_MSTR.PRI_GRP_CD='PUT',1,0))*100/COUNT(TALLY_TRAN_MSTR.FULL_PLLT_QTY)),2) AS PctActive FROM WBR_RW.TALLY_TRAN_MSTR TALLY_TRAN_MSTR 现在,每个date都有许多date和许多名字,所以我想让代码认识到这一点。 我不知道我正在尝试适应的代码是否能够做到这一点。 在这个问题上,我非常努力的工作,或者find可能有用的代码。 任何帮助,将不胜感激。 让我知道是否需要额外的信息。 编辑 我正在尝试查看一个人在超过75%的时间内在某个特定date做“PUT”的情况。 我想要做的一个例子是(手动计算) McMillan有3件与他的名字6/15/2017相关的项目。 其中1个是“PUT”。 这个date的“PUT”项目的总数是132.与他的名字相关的所有事情的总和是167。132/167 = 0.79。 0.79> 0.75所以我想他的数据显示在我的查询结果。 马龙在6/15/2017有4个与他的名字相关的项目。 其中1个是“PUT”。 “PUT”的总和是4.所有4个项目的总和是36.4 / 36 = 0.11 0.11 <0.75,所以我想摆脱这个数据。

Oracle – 后台处理为CSV文件,但Excel将“$ 10,000”分成两列

我有一个命令如下: SPOOL &&p_CSVfile SELECT YEAR || ', ' || TO_CHAR(AMOUNT, '$9,999,999,999.99') FROM TABLE SPOOL OFF …和AMOUNT字段中的值可以包含逗号。 当这个文件在Microsoft Excel中打开时,AMOUNT字段被视为两个单独的字段,如果它包含一个逗号。 有没有一个简单的方法,我不知道,或者我将不得不改变我的分隔符?

将数据从Oracle SQL Developer导出到Excel .xlsx

我有一个小型项目,需要将Oracel SLQ Developer的数据导出到Excel(使用SLQ Developer中的命令而不是工具),然后创build一个图表。 使用“假脱机”我可以导出到CSV精细(但无法在CSV中创build一个graphics),但是当我尝试导出到XLSX它腐败整个Excel表格说 "Excel cannot open the file "ExcelFile.xlsx" because the file format or file extention is not valid. Verify that the file has not been corrupted and that the file extension mathces the format of the file." 这里是我在SQL Developer中使用的代码。 spool FileLocation\ExcelFile.xlsm SELECT * FROM Table; spool off; 有什么办法可以阻止数据被破坏或有另一种方式将数据导出到.xlsx文件? 谢谢

从Excel 2007中打开一个Oracle .dmp文件

我有一个oracle .dmp文件,我想从excel 2007打开。我如何使用'获取外部数据'function来做到这一点? 首先可能吗?

基于条件的Oracle总和

SQL第一,所以我可以参考它更低: SELECT ID, SUM(length(substr(DATA_STRING, instr(DATA_STRING,'P')+1))) FROM DATA P, PLC PP WHERE P.ID = PP.ID AND instr(DATA_STRING, 'F') = 0 GROUP BY ID 上面的函数在每个数据string中查找P,并计算string中有多less个字符。 所以,我的问题是,我有两个可能发生的情况,其中一个数据string可能包含上面的P,或者它包含一个F.我需要能够检查两个,然后总和总和。 与上面的问题是,我总结了一个0,如果条件当string有一个F发生。 在Excel中,我几乎需要SUMIF的等价物,所以我可以说当我searchP时,它是0,然后查找F并添加该长度,反之亦然。 请让我知道,如果你有build议!

导入Excel数据而不插入表格

我在定位如何将数据导入到Oracle SQL Developer而不将数据插入表中时遇到了一些困难。 看来我遇到的所有function都需要用户插入到表中。 有没有人知道是否有办法去做到这一点? 我没有创build临时表的权限,也没有插入现有表的权限。 谢谢!

从Excel执行Oracle Query(DML)

我可以将现有表/视图的结果链接到Excel电子表格(通过从ODBC向导的“select数据库和表格”窗口中select表格,但是我想执行原始查询。 我想基于单元格值生成一个查询(作为一个string)。 然后,用户可以手动“刷新”将要发送当前string到Oracle的数据表并返回结果。 有没有办法将原始查询(DML)的结果链接到Excel电子表格?

在Java代码中频繁提交插入数据库是否是一个好习惯?

我的java代码读取excel文件,并将数据写入(插入)到oracle数据库。 例如,我需要读取2000行excel文件中的一些类似的单元格,我的代码读取它,插入到数据库,并在提交后。 第一个约1000行插入很快,而另外1000行插入很长。 缺乏记忆的可能原因。 所以,我认为在数据加载到数据库时要经常提交(例如,在每读取50行之后进行提交)。 这样做是好的做法,还是有其他方法可以解决这个问题?