الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة عاجلة في SYSPROC.XDBDECOMPXML

بدأه Nouf64 في 14 يونيو 2011 · 10 رد · 497 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أرجو المساعدة في هذا الكود

String xmlfilename = "c:/book.xml";

int shred = 1;

// Decompose the XML document by calling the SYSPROC.XDBDECOMPXML

CallableStatement callStmt = con.prepareCall("CALL SYSPROC.XDBDECOMPXML(?,?,?,?,?, NULL, NULL, NULL)");

File xmlfile = new File(xmlfilename);

FileInputStream xmlfileis = new FileInputStream(xmlfile);

callStmt.setString(1, relSchema );

callStmt.setString(2, schemaName );

callStmt.setBinaryStream(3, xmlfileis, (int)xmlfile.length() );

callStmt.setString(4, schemaName );

callStmt.setInt(5, shred);

callStmt.execute();

xmlfileis.close();

callStmt.close();

System.out.println("**** CALL SYSPROC.XDBDECOMPXML SUCCESSFULLY");

// Read Data from the tables, where the data is stored after decomposition.

SelectFromAllTables(con);

يظهر لي هذا الخطأ

Error Msg: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=SYSPROC.XDBDECOMPXML;PROCEDURE, DRIVER=3.62.56

SQLState: 42884

SQLError: -440

ياليت اللي يعرف الحل يرد علي

مع الشكر

#2

تقريبا علشان الـ

 CALL SYSPROC.XDBDECOMPXML(?,?,?,?,?, NULL, NULL, NULL)

انا مش عارف الـ XML هل ينفع يتعمل عليه Procedure ولا لا

لو مش ينفع يقبى طريقتك دى غلط وهى دى الخطأ اللى تسبب فالمشكلة اللى بتظهر لك

انما لو ينفع يقبى انت نسيت تكتب الـ Procedure اللى بتستدعيه

1

Software Developer
Mahmoudkelany.com


 

#3

إن شاء الله تكون صح

أنا بيشتغل على ال DB2 server

بس ما فهمت قصدتك أستدعيه كيف؟؟

#4

فعلاً الخطأ في ال procedure هذي بس ( الخطأ في هذي الجزئية )

CallableStatement callStmt = con.prepareCall("CALL SYSPROC.XDBDECOMPXML(?,?,?,?,?, NULL, NULL, NULL)");

File xmlfile = new File(xmlfilename);

FileInputStream xmlfileis = new FileInputStream(xmlfile);

callStmt.setString(1, relSchema );

callStmt.setString(2, schemaName );

callStmt.setBinaryStream(3, xmlfileis, (int)xmlfile.length() );

callStmt.setString(4, schemaName );

callStmt.setInt(5, shred);

callStmt.execute();

الكود أخذته من موقع شركة IBM يعني مستحيل يستخدمون procedure ماتنفع لملف xml

#5

هذا ملف ال XSD

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.w3schools.com"

xmlns="http://www.w3schools.com"

elementFormDefault="qualified">

<xs:element name="person">

<xs:complexType>

<xs:sequence>

<xs:element name="Id" type="xs:string"/>

<xs:element name="first" type="xs:string"/>

<xs:element name="last" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

و هذا ملف ال XML

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="class.xsl"?>

<book>

<person id="1">

<first>Kiran</first>

<last>Pai</last>

</person>

<person id="2">

<first>Bill</first>

<last>Gates</last>

</person>

<person id="3">

<first>Steve</first>

<last>Jobs</last>

</person>

</book>

ما أدري إذا صح أو لا

تم تعديل هذه المشاركة بواسطة Nouf64 في 14 يونيو 2011 في 02:01

#6
Nouf64 كتب:

فعلاً الخطأ في ال procedure هذي بس ( الخطأ في هذي الجزئية )

CallableStatement callStmt = con.prepareCall("CALL SYSPROC.XDBDECOMPXML(?,?,?,?,?, NULL, NULL, NULL)");

File xmlfile = new File(xmlfilename);

FileInputStream xmlfileis = new FileInputStream(xmlfile);

callStmt.setString(1, relSchema );

callStmt.setString(2, schemaName );

callStmt.setBinaryStream(3, xmlfileis, (int)xmlfile.length() );

callStmt.setString(4, schemaName );

callStmt.setInt(5, shred);

callStmt.execute();

الكود أخذته من موقع شركة IBM يعني مستحيل يستخدمون procedure ماتنفع لملف xml

ما هو انت لازم تعمل الـ Procedure دا عندك فى قاعده البيانات

علشان لم تستدعيه من خلال الكود يلاقيه وينفذ الكود

انما ازاى تعمله معرفش بجد لانى لم اتعامل مع الـ DB2

Software Developer
Mahmoudkelany.com


 

#7

CallableStatement callStmt = con.prepareCall("CALL SYSPROC.XDBDECOMPXML(?,?,?,?,?, NULL, NULL, NULL)");

File xmlfile = new File(xmlfilename);

FileInputStream xmlfileis = new FileInputStream(xmlfile);

callStmt.setString(1, relSchema );

callStmt.setString(2, schemaName );

callStmt.setBinaryStream(3, xmlfileis, (int)xmlfile.length() );

callStmt.setString(4, schemaName );

callStmt.setInt(5, shred);

callStmt.execute();

xmlfileis.close();

callStmt.close();

System.out.println("**** CALL SYSPROC.XDBDECOMPXML SUCCESSFULLY");

// Read Data from the tables, where the data is stored after decomposition.

SelectFromAllTables(con);

هذي ال procedure مخزنة في ال DB2

وهذا توصيفها

Description of the Parameters of the Stored Procedure XDBDECOMPXML

Parameter Description

rschema The relational schema part of the two-part SQL identifier of the annotated XML

Schema. For example, if the SQL identifier of the XML Schema is

db2admin.cust2xsd, then you should pass the string 'db2admin' to this

parameter. In DB2 for z/OS this value must be either 'SYSXSR' or NULL.

xmlschemaname The second part of the two-part SQL identifier of the annotated XML Schema. If

the SQL identifier of the XML Schema is db2admin.cust2xsd, then you pass

the string 'cust2xsd' to this parameter. This value cannot be NULL.

xmldoc In DB2 for Linux, UNIX, and Windows, this parameter is of type BLOB(1M)

and takes the XML document to be decomposed. In DB2 for z/OS this parameter

is of type CLOB AS LOCATOR. This parameter cannot be NULL.

documentid A string that the caller can use to identify the input XML document. The value

provided will be substituted for any use of $DECOMP_DOCUMENTID specified in

the db2-xdb:expression or db2-xdb:condition annotations.

validation Possible values are: 0 (no validation) and 1 (validation is performed). This

parameter does not exist in DB2 for z/OS.

reserved Parameters reserved for future use. The values passed for these arguments must

be NULL. These parameters do not exist in DB2 for z/OS.

#8

ما هو الـ procedure

SYSPROC.XDBDECOMPXML

غير موجود

فلابد من انك تضيفيه ازاى تضيفه معرفش بصراحه

1

Software Developer
Mahmoudkelany.com


 

#9

يا أخي هذه ال procedure معرفة من قبل في ال db2

ينقصني فقط إستدعائها

الخطأ يكمن في ال parameter الممررة أرجو المساعدة ممن لديه خبرة في الأمر

#10
Nouf64 كتب:

يا أخي هذه ال procedure معرفة من قبل في ال db2

ينقصني فقط إستدعائها

الخطأ يكمن في ال parameter الممررة أرجو المساعدة ممن لديه خبرة في الأمر

خلاص انتى اعلم منى بذلك

انا لا اعلم صراحه حاولت المساعده

Software Developer
Mahmoudkelany.com


 

#11

أعتذرررررر

أنا مبئدئة جداً ولكن هناك procedure قمت بمناداتها من قبل و ضبطت معي شمعنى هذي ال procedure

هذي ال peocedure زي ما تقول هدية من ipm للمطورين مع إصدار 9.1 على ما أذكر

مواضيع مشابهة