Oracle 为订单号创建“| |”:“| | i.ordernumber); 例外 当UTL_FILE.INVALID_路径 无效的 结束xxx_测试;

Oracle 为订单号创建“| |”:“| | i.ordernumber); 例外 当UTL_FILE.INVALID_路径 无效的 结束xxx_测试;,oracle,oracle11g,oracle10g,oracle-sqldeveloper,utl-file,Oracle,Oracle11g,Oracle10g,Oracle Sqldeveloper,Utl File,我也有同样的问题 事实证明,这是一个文件大小问题,小于70k的文件可以复制,但大于70k的文件最终会变成0字节 这不是oracle的错误,而是如何安装共享驱动器 如果您可以尝试将fcopy复制到本地驱动器,您会发现它工作正常 找负责安装共享驱动器的人来解决问题。请提供您尝试过的代码/脚本。我不想问,但两个实例之间的数据是否相同?或者您是否可能在11实例中达到了最大缓冲区大小?如果你只是打印出标题行,它至少会在11中通过吗?如果是缓冲区问题,首先我建议在put_行调用中添加可选的autoflush

我也有同样的问题

事实证明,这是一个文件大小问题,小于70k的文件可以复制,但大于70k的文件最终会变成0字节

这不是oracle的错误,而是如何安装共享驱动器

如果您可以尝试将fcopy复制到本地驱动器,您会发现它工作正常


找负责安装共享驱动器的人来解决问题。

请提供您尝试过的代码/脚本。我不想问,但两个实例之间的数据是否相同?或者您是否可能在11实例中达到了最大缓冲区大小?如果你只是打印出标题行,它至少会在11中通过吗?如果是缓冲区问题,首先我建议在put_行调用中添加可选的autoflush third参数=TRUE,还可以选择中断输出行。将前50列放在fflush中,然后将其余列放在_行中。
PROCEDURE xxx_test (    RETCODE IN VARCHAR2,    ERRBUFF IN VARCHAR2) IS
FILENAME  UTL_FILE.FILE_TYPE;
v_file_name varchar2(250);
v_count NUMBER;
CURSOR C1 IS
SELECT  *
FROM
GRC.GR_PO_EDI_TEMP_ARCHIVE GPET
,OE_ORDER_HEADERS_ALL       OOHA
,OE_ORDER_LINES_ALL         OOLA
WHERE GPET.ORDERNUMBER              = OOHA.CUST_PO_NUMBER
AND   OOHA.HEADER_ID                = OOLA.HEADER_ID
AND   OOHA.ORG_ID                   = OOLA.ORG_ID
AND     nvl(GPET.PO_ACK_STATUS,'N') <> 'Y'  ;
i C1%ROWTYPE;   
BEGIN
BEGIN
SELECT 'orders_1.1_'||to_char(sysdate,'yyyymmddHH24MMSS')||'.txt' INTO v_file_name FROM dual;
exception
WHEN others THEN
v_file_name := NULL;
RAISE_APPLICATION_ERROR(-20201,'File Name Generation failed.!!');
END;
FILENAME:= UTL_FILE.FOPEN('/home/outbox',v_file_name,'w',32767);
/* THIS WILL CREATE THE HEADING IN the FILE */
UTL_FILE.PUT_LINE(FILENAME,
'orderNumber' ||'    '||
'orderDate' ||'    '||
'orderType' ||'    '||
'currency' ||'    '||
'paymentTerm' ||'    '||
'paymentTermText' ||'    '||
'customer' ||'    '||
'supplier' ||'    '||
'shipToSite' ||'    '||
'shipFromSite' ||'    '||
'freightTerm' ||'    '||
'freightTermMeaning' ||'    '||
'freightCarrier' ||'    '||
'buyerNotesHeader' ||'    '||
'supplierNotesHeader' ||'    '||
'buyerName' ||'    '||
'buyerEmail' ||'    '||
'buyerContact' ||'    '||
'lineNumber' ||'    '||
'item' ||'    '||
'itemDescriptionFreeForm' ||'    '||
'UOM' ||'    '||
'price' ||'    '||
'quantity' ||'    '||
'reqDeliveryDate' ||'    '||
'supplierSuggestedPrice' ||'    '||
'buyerNotesLines' ||'    '||
'supplierNotesLines' ||'    '||
'lineShippedQuantity' ||'    '||
'lineReceivedQuantity' ||'    '||
'lineBilledQuantity' ||'    '||
'scheduleNum' ||'    '||
'scheduleQuantity' ||'    '||
'scheduleDeliveryDate' ||'    '||
'promisedDeliveryDate' ||'    '||
'quantityPromised' ||'    '||
'buyerNotesSchedule' ||'    '||
'supplierNotesSchdule' ||'    '||
'quantityReceived' ||'    '||
'quantityShipped' ||'    '||
'Action' ||'    '||
'Id' ||'    '||
'shipToSiteName' ||'    '||
'shipToSiteaddress1' ||'    '||
'shipToSiteaddress2' ||'    '||
'shipToSitecity' ||'    '||
'shipToSitestate' ||'    '||
'shipToSitepostalcode' ||'    '||
'shipToSitecountry' ||'    '||
'totallines' ||'    '||
'orderlinesquantitysum' ||'    '||
'scheduleStatus' ||'    '||
'erpHeaderId' ||'    '||
'erpLineId' ||'    '||
'erpScheduleId' ||'    '||
'billToSiteName' ||'    '||
'billToSiteaddress1' ||'    '||
'billToSiteaddress2' ||'    '||                         
'billToSitecity' ||'    '||
'billToSitestate' ||'    '||
'billToSitepostalcode' ||'    '||
'billToSitecountry' ||'    '||
'supplieritemnumber' ||'    '||
'manufacturer' ||'    '||
'flexField1' ||'    '||
'flexField2' ||'    '||
'flexField3' ||'    '||
'flexField4' ||'    '||
'flexField5' ||'    '||
'flexField6' ||'    '||
'flexField7' ||'    '||
'flexField8' ||'    '||
'flexField9' ||'    '||
'flexField10' ||'    '||
'SupplierName' ||'    '||
'LineValue' ||'    '||
'OrderValue' ||'    '||
'customererpitemid' ||'    '||
'suppliererpitemid' ||'    '||
'salesOrder' ||'    '
);
OPEN c1;
loop
fetch c1 INTO i;
exit WHEN c1%notfound;

UTL_FILE.PUT_LINE(FILENAME,
i.ordernumber||'    '||
i.orderdate||'    '||
i.ordertype||'    '||
i.currency||'    '||
i.paymentterm||'    '||
i.paymenttermtext||'    '||
i.customer||'    '||
i.supplier||'    '||
i.shiptosite||'    '||
i.shipfromsite||'    '||
i.freightterm||'    '||
i.freighttermmeaning||'    '||
i.freightcarrier||'    '||
i.buyernotesheader||'    '||
i.suppliernotesheader||'    '||
i.buyername||'    '||
i.buyeremail||'    '||
i.buyercontact||'    '||
i.linenumber||'    '||
i.item||'    '||
i.itemdescriptionfreeform||'    '||
i.uom||'    '||
i.price||'    '||
i.quantity||'    '||
i.reqdeliverydate||'    '||
i.suppliersuggestedprice||'    '||
i.buyernoteslines||'    '||
i.suppliernoteslines||'    '||
i.lineshippedquantity||'    '||
i.linereceivedquantity||'    '||
i.linebilledquantity||'    '||
i.schedulenum||'    '||
i.schedulequantity||'    '||
i.scheduledeliverydate||'    '||
i.promiseddeliverydate||'    '||
i.quantitypromised||'    '||
i.buyernotesschedules||'    '||
i.suppliernotesschdules||'    '||
i.quantityreceived||'    '||
i.quantityshipped||'    '||
i.action||'    '||
i.id||'    '||
i.shiptositename||'    '||
i.shiptositeaddress1||'    '||
i.shiptositeaddress2||'    '||
i.shiptositecity||'    '||
i.shiptositestate||'    '||
i.shiptositepostalcode||'    '||
i.shiptositecountry||'    '||
i.totallines||'    '||
i.orderlinesquantitysum||'    '||
i.schedulestatus||'    '||
i.erpheaderid||'    '||
i.erplineid||'    '||
i.erpscheduleid||'    '||
i.billtositename||'    '||
i.billtositeaddress1||'    '||
i.billtositeaddress2||'    '||
i.billtositecity||'    '||
i.billtositestate||'    '||
i.billtositepostalcode||'    '||
i.billtositecountry||'    '||
i.supplieritemnumber||'    '||
i.manufacturer||'    '||
i.flexfield1||'    '||
i.flexfield2||'    '||
i.flexfield3||'    '||
i.flexfield4||'    '||
i.flexfield5||'    '||
i.flexfield6||'    '||
i.flexfield7||'    '||
i.flexfield8||'    '||
i.flexfield9||'    '||
i.flexfield10||'    '||
i.suppliername||'    '||
i.linevalue||'    '||
i.ordervalue||'    '||
i.customererpitemid||'    '||
i.suppliererpitemid||'    '||
i.salesordernumber||'    '
);
END LOOP;   
UTL_FILE.FCLOSE(FILENAME);
fnd_file.put_line(fnd_file.output,'File created & File Name:  '||v_file_name      );
dbms_output.put_line(v_file_name||' '||'file created '||'for Order Number:   '||i.ordernumber);
exception  
WHEN UTL_FILE.INVALID_PATH THEN
null;
END xxx_test;