|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Собственно хотелось бы поделиться сабжем. На форуме я других версий не нашел, поэтому решил выложить то чем у нас пользуются для склонения фамилий. Может будут придложения и замечания. ЗЫ Я не автор. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 10:18 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Буду рад увидеть другие варианты. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 10:19 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
аффтар function IIF(bool boolean, str1 varchar2, str2 varchar2) return varchar2 is begin return case when bool then str1 else str2 end; end; function IIF(bool boolean, num1 number, num2 number) return number is begin return case when bool then num1 else num2 end; end; Decode? © Бомж Inc. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 10:21 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
geo_lifeБуду рад увидеть другие варианты.Ты лучше для этого варианта выложи недостающие детали. А то он там без типа компилится не хочет... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:00 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Бомж аффтарfunction IIF(bool boolean, str1 varchar2, str2 varchar2) return varchar2 return case when bool then str1 else str2 end; Decode? STFF в PL/SQL-е нет decode ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:11 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Бомж аффтар function IIF(bool boolean, str1 varchar2, str2 varchar2) return varchar2 is begin return case when bool then str1 else str2 end; end; function IIF(bool boolean, num1 number, num2 number) return number is begin return case when bool then num1 else num2 end; end; Decode? © Бомж Inc. Если быть точнее Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:14 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:18 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:21 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
geo_life-- !!!!!!!!!!!!!!!!!! Забыл сразу написать :) TYPE T_F_I_O IS VARYING ARRAY (3) OF VARCHAR2(255); Вообще достаточно раскомментировать соответствующую строку в теле пакета :) Но просто здорово. Титанический труд. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:28 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
geo_lifeЕсли быть точнее: в DECODE нельзя писать логическое условие.Ещё один. В нём вообще нельзя ничего писать, потому что его там нет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:30 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Благополучно коверкаются корейские фамилии, такие как Ян, Тян, Пак. А кроме корейцев есть ещё много национальностей, где фамилии отличаются от стандартов русских. Хоть немецкие взять, к примеру. Про азиатов вообще молчу (вот у меня в базе есть такая интересное фамилиё Оглы Бирза, я даже не знаю, кто это Он или Она...). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:33 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
А у кого нибудь есть другие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:41 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Я А кроме корейцев есть ещё много национальностей, где фамилии отличаются от стандартов русских. Хоть немецкие взять, к примеру. Почеиу ? Немецкие фамилии в немецком языке действительно не склоняются, но в русском склоняются нормально. "Все рады мудрому решению канцлера Шредера" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:45 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
ЯБлагополучно коверкаются корейские фамилии, такие как Ян, Тян, Пак. А кроме корейцев есть ещё много национальностей, где фамилии отличаются от стандартов русских. Хоть немецкие взять, к примеру. Про азиатов вообще молчу (вот у меня в базе есть такая интересное фамилиё Оглы Бирза, я даже не знаю, кто это Он или Она...). Фиг с ними с корейцами! Банальные русские фимилии не склоняются Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:48 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:52 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
dmidek Я А кроме корейцев есть ещё много национальностей, где фамилии отличаются от стандартов русских. Хоть немецкие взять, к примеру. Почеиу ? Немецкие фамилии в немецком языке действительно не склоняются, но в русском склоняются нормально. "Все рады мудрому решению канцлера Шредера" :-) Хорошо, а просклоняй мне, к примеру, Вальтер Инга... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 11:57 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
dmidek Я А кроме корейцев есть ещё много национальностей, где фамилии отличаются от стандартов русских. Хоть немецкие взять, к примеру. Почеиу ? Немецкие фамилии в немецком языке действительно не склоняются, но в русском склоняются нормально. "Все рады мудрому решению канцлера Шредера" :-) Однако: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 12:00 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Мы склонеям фамилии, имена и слова вообще с помощью таблицы правил и следующей функции, которая входит в разные алгоритмы - склонение имен, числительных и т.д. Учитывает все правила, что внесешь в таблицу правил. Минус, необходимо иметь правило в таблице, иначе слово останется в именительном падеже. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 12:06 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Владимор Конев dmidek Я А кроме корейцев есть ещё много национальностей, где фамилии отличаются от стандартов русских. Хоть немецкие взять, к примеру. Почеиу ? Немецкие фамилии в немецком языке действительно не склоняются, но в русском склоняются нормально. "Все рады мудрому решению канцлера Шредера" :-) Хорошо, а просклоняй мне, к примеру, Вальтер Инга... Полный вариант склонения композитора Евгения Доги. Помните "Музыка Евгения Доги, слова ..." Если это женщина по фамилии Вальтер, то тоже ничего специфического. "Мы критикуем статью товарища Коллонтай" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 12:15 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Коллеги, спасибо за исходники. Георгий, сочувствую Вам, похоже автор исходника по молодости игнорировал стандарты и рекомендации программирования на PL/SQL. Да и путанник был великий. Коснусь только спецификации пакета. 1) Учитывая русскую специфику процедуры склонения фамилии в нужном падеже имеет ли смысл вводить дополнительно функцию GetFIOPadeg? На мой взгляд, достаточно padeg_FIO. 2) Падеж задается первой буквой своего названия: "и", "р", "д", "в", "т", "п" и не зависит от регистра буквы. Я бы разрешил только большие буквы "И"..."П", чтобы не наводить тень не плетень. Строгость и краткость спецификаций пакета способствуют отодвиганию порога сложности при крупномасштабном программировании. 3) Перенести из спецификации пакета в тело пакета все, что не предполагается использовать из других пакетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 12:50 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
функция Padeg_Word была переведена с 1С (мною), но всю логику я не трогал, даже не вдавался в подробности. GetFIOPadeg сделана для удобства - что бы падеж задавать по номерю. Я автор только Get_F_I_O, GET_SEX (были давно написаны) и IIF, str_Right, str_Left (для удобства перевода с 1С) - если их можно как то переделать - готов выслушать предложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 13:01 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
geo_lifeGetFIOPadeg сделана для удобства - что бы падеж задавать по номерю. andrey_anonymous элегантно этим и воспользовался. Однако, сомневаюсь, что подобный случай использования оправдывает усложнение спецификации (применительно к склонению фамилий). Кроме того, в наличии две фунции с разными именами, которые делают одно и то же. Если уж очень надо, то используйте Overloading Subprogram Names (PL/SQL User's Guide and Reference). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 13:51 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
OracleX geo_lifeGetFIOPadeg сделана для удобства - что бы падеж задавать по номерю. andrey_anonymous элегантно этим и воспользовался. Однако, сомневаюсь, что подобный случай использования оправдывает усложнение спецификации (применительно к склонению фамилий). Кроме того, в наличии две фунции с разными именами, которые делают одно и то же. Если уж очень надо, то используйте Overloading Subprogram Names (PL/SQL User's Guide and Reference). ДА, согласен. Надо будет переделать GetFIOPadeg с учетом Overloading Subprogram Names. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2006, 14:07 |
|
Склонение фамилий. (Вариант решения)
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2006, 16:50 |
|
|
start [/forum/topic.php?fid=52&fpage=68&tid=1882138]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
136ms |
get tp. blocked users: |
2ms |
others: | 46ms |
total: | 262ms |
0 / 0 |