Anonim

Paminsan-minsan ay nakakakita ka ng isang hindi-00942 error kapag nagpapatakbo ng isang pahayag ng SQL. Ito ay may ilang mga sanhi at tulad ng dati, ang error syntax ay hindi ang pinaka naglalarawan. Kung darating ka laban dito at nais mong malaman kung paano ayusin ang hindi-00942 error, basahin.

Sa pagkakaalam ko, may tatlong pangunahing sanhi ng hindi-00942 error:

  1. Hindi sapat na pribilehiyo ng gumagamit
  2. Ang talahanayan o pagtingin ay hindi talaga umiiral
  3. Ang mesa o view ay nasa ibang schema

Ipapakita ko sa iyo kung paano matugunan ang bawat isa.

Ayusin ang hindi-00942 error

Una, isang maliit na pagtanggi. Hindi ako DBA, ako ay isang Windows administrator at desktop at tech hardware server. Alam ko kung paano patakbuhin ang SQL ngunit hindi sa anumang antas ng kadalubhasaan at tiyak na hindi sa antas na maaaring malutas ang mga isyu. Kailangang humingi ako ng tulong sa isang Oracle DBA buddy ng minahan, kaya't habang isinulat ko ang piraso na ito, ang mga matalinong bits ay lahat ng kanya.

Ang listahan ng tatlong mga sanhi ng hindi-00942 error ay hindi kumpleto. Mayroong tila iba pang mga random na sanhi nito ngunit ang tatlong ito ay tila ang pinaka-karaniwan.

Hindi sapat na pribilehiyo ng gumagamit

Ang isang pangunahing sanhi ng hindi-00942 error ay ang gumagamit ay walang sapat na pribilehiyo upang ma-access ang talahanayan na pinag-uusapan. Maaari mong suriin ito sa pamamagitan ng pagpapatakbo ng dalawang mga query.

- listahan ng mga pribilehiyo ng system para sa gumagamit o papel na PILIWANO * Mula sa dba_sys_privs SAAN NANGANGGAP SA (& user_role, 'PUBLIC');

- Listahan ng mga pribilehiyo sa object para sa gumagamit o papel

PUMILI ng garantiya, may-ari || '.'

Sasabihin sa iyo ng dalawang ito kung ang gumagamit na pinag-uusapan ay may tamang mga pribilehiyo upang patakbuhin ang utos. Kung ang gumagamit ay may tamang mga pribilehiyo, lumipat sa susunod. Kung ang gumagamit ay walang tamang mga pribilehiyo, bigyan sila sa kanila o hilingin sa iyong DB Admin na gawin ito.

Ang error na wala-00942 ay maaari ring maganap kung ang gumagamit ng schema na iyong ginagamit ay may mga pribilehiyo sa INSERT ngunit hindi PILI ang mga pribilehiyo. Muli, suriin ang antas ng pribilehiyo at idagdag ang PAGPILI sa listahan o hilingin sa isang DB Admin na gawin ito. Tila, ang tiyak na pribilehiyo ng PILIONG ay dapat ibigay sa bawat panukala kung hindi man makikita mo ang error na wala-00942.

Ang talahanayan o pagtingin ay hindi talaga umiiral

Ang sanhi ng hindi-00942 error ay maaaring sanhi ng hindi tamang syntax query o kung ang talahanayan ay hindi umiiral. Bagaman ito ay tila lohikal na unang lugar upang magsimula, maaasahan ako na ang pribilehiyo ng gumagamit ay ang numero unong sanhi ng pagkakamali. Ang talahanayan na hindi naroroon o ang maling talahanayan syntax na ginagamit ay pangalawa.

Upang suriin kung umiiral ang talahanayan, suriin muna ang syntax ng query. Kung tama ang syntax, patakbuhin ang query na ito.

PILI ang may-ari, object_name, object_type MULA sa lahat ng mga bagay na SAAN object_type IN ('TABLE', 'VIEW') AT object_name = 'YOUR_TABLE_NAME';

Sa huling linya na ito, ipasok ang aktwal na pangalan ng talahanayan kung saan nakikita mo ang 'YOUR_TABLE_NAME'. Ito ay dapat sabihin sa iyo sigurado kung ang talahanayan na sinusubukan mong query ay umiiral o hindi. Kung bumalik ito nang walang mesa, ang talahanayan na iyong hinihiling ay hindi umiiral sa schema o database.

Kung ang system na iyong ginagamit ay may menu ng Tables, maaari mong manu-manong suriin para sa talahanayan kung gusto mo ngunit ang nabanggit na query ay natapos ang trabaho.

Ang mesa o view ay nasa ibang schema

Kung ang mga gumagamit ay may mga pribilehiyo at ang talahanayan ay umiiral at nakikita mo pa rin ang hindi-00942 error, malamang na pababa ito sa panukala. Kung namamahala ka ng maraming mga scheme, madaling magpatakbo ng isang query laban sa isang panukala na hindi sa iyo. Kapag ikaw ay abala at up laban dito, ito ay isang simpleng error na magagawa.

Suriin nang manu-mano ang schema kung maaari mong o magdagdag ng pangalan ng schema sa linya ng MULA sa iyong query. Kung wala kang tamang mga pribilehiyo para sa bagong panukala, makikita mo muli ang hindi-00942 error. Bumalik sa unang pag-aayos ng pribilehiyo ng gumagamit at suriin ang kaukulang schema o makuha ang iyong DBA na gawin ito para sa iyo.

Tulad ng nabanggit sa itaas, kumunsulta ako sa isang Oracle DBA buddy of mine para sa piraso na ito kaya lahat ng kredito sa kanya para sa masipag na trabaho. Kung nakakita ka ng anumang mga pagkakamali o pagtanggal dito, nag-iisa lang ako. Ipaalam sa akin sa seksyon ng mga komento kung na-miss ko ang anumang bagay o nagkamali ako at itatama ko ito.

Kung alam mo ang anumang iba pang paraan upang ayusin ang hindi-00942 error, sabihin sa amin ang tungkol dito sa ibaba!

Paano ayusin ang hindi-00942 error